»ö« 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:01 inra left
jdv79 i'm trying to call p5's Email::Simple.create() from p6 and getting "Could not find symbol 'Simple'" when called in a method but in the body of the class its fine. 00:06
also taking this class out of the app seems to fix it. so having a little trouble golfign it
00:08 lukiramu left 00:18 girafe left 00:19 bjz joined
jdv79 m: say "foo" 00:20
camelia rakudo-moar b7cd77: OUTPUT«foo␤»
jdv79 m: use Inline::Perl5; 00:21
camelia rakudo-moar b7cd77: OUTPUT«===SORRY!===␤Could not find Inline::Perl5 at line 1 in:␤ /home/camelia/.perl6␤ /home/camelia/rakudo-m-inst-1/share/perl6/site␤ /home/camelia/rakudo-m-inst-1/share/perl6/vendor␤ /home/camelia/rakudo-m-inst-1/share/perl6␤ CompUnit:…»
00:22 lucasb left 00:25 shmibs left
timotimo star: use Inline::Perl5 00:26
camelia star-m 2016.10: OUTPUT«===SORRY!===␤Could not find Inline::Perl5 at line 1 in:␤ /home/camelia/.perl6␤ /home/camelia/star-2016.10/share/perl6/site␤ /home/camelia/star-2016.10/share/perl6/vendor␤ /home/camelia/star-2016.10/share/perl6␤ CompUnit::Repository::…»
timotimo :(
00:26 shmibs joined
jdv79 so, oddly it seems maybe the p5 use statement has to be both in the scope of the class declaration and the site of the call 00:26
so static and dynamic. weird. 00:27
00:31 pmurias left 00:35 Actualeyes joined
jdv79 gist.github.com/anonymous/46bbf63a...d06d8c4fb5 00:37
nine_: ^^^ ?
i don't get it
i guess i'll bug it. seems wrong. 00:38
00:40 espadrine left 00:49 aborazmeh joined, aborazmeh left, aborazmeh joined 00:53 kyan joined 01:12 pecastro left, Vynce left 01:13 wamba left 01:21 foo__ joined 01:23 foo__ left 01:24 shun__ joined 01:26 shun__ left, felher left
mr_ron m: grammar g { regex ft { $<no>='00' | $<cl>=('4' <[2]> '2') }; regex ft3 { <ft> | $<ok3>=('4' <[23]>)} }; say '422' ~~ /<g::ft3>/ # ok so far 01:28
camelia rakudo-moar b7cd77: OUTPUT«「422」␤ g::ft3 => 「422」␤ ft => 「422」␤ cl => 「422」␤»
mr_ron m: grammar g { regex ft { $<no>='00' || $<cl>=('4' <[2]> '2') }; regex ft3 { <ft> | $<ok3>=('4' <[23]>)} }; say '422' ~~ /<g::ft3>/ # should get same result ? 01:29
camelia rakudo-moar b7cd77: OUTPUT«「42」␤ g::ft3 => 「42」␤ ok3 => 「42」␤»
01:32 cdg_ left
AlexDaniel mr_ron: | does longest token matching, so this result is expected 01:32
and || doesn't 01:33
mr_ron I am mixing ltm and lexical order (there are both)
AlexDaniel oh. 01:35
01:35 Ben_Goldberg joined, BenGoldberg left, Ben_Goldberg is now known as BenGoldberg 01:36 felher joined
AlexDaniel mr_ron: after staring at it a bit, I think you're right 01:38
mr_ron will double check rt and rakudobug if missing - thanks
01:41 Dee joined
AlexDaniel m: my regex ft { ‘00’ | ‘422’ }; my regex ft3 { <ft> | ‘42’ }; say ‘422’ ~~ /<ft3>/ 01:43
camelia rakudo-moar b7cd77: OUTPUT«「422」␤ ft3 => 「422」␤ ft => 「422」␤»
AlexDaniel m: my regex ft { ‘00’ || ‘422’ }; my regex ft3 { <ft> | ‘42’ }; say ‘422’ ~~ /<ft3>/
camelia rakudo-moar b7cd77: OUTPUT«「42」␤ ft3 => 「42」␤»
AlexDaniel golfed a little bit
m: say ‘422’ ~~ / [ ‘00’ | ‘422’ ] | ‘42’ / 01:44
camelia rakudo-moar b7cd77: OUTPUT«「422」␤»
AlexDaniel m: say ‘422’ ~~ / [ ‘00’ || ‘422’ ] | ‘42’ /
camelia rakudo-moar b7cd77: OUTPUT«「42」␤»
AlexDaniel mr_ron: ok, I think this is as short as it can get 01:45
01:45 pecastro joined 01:46 Dee left 01:59 bjz left 02:00 bjz_ joined 02:02 dugword left
mr_ron AlexDaniel: stepped out for a bit - thanks 02:14
02:17 labster joined, bjz joined, bjz_ left 02:27 kalkin- left 02:28 kalkin- joined 02:42 lmmx joined
AlexDaniel mr_ron: I have a feeling that this behavior is actually expected, and perhaps someone will point it out eventually 02:43
mr_ron: but so far looks like a bug to me…
so yes, it would be great to have a ticket 02:44
mr_ron will work on ticket tomorrow morning - thanks
02:45 ilbot3 left
AlexDaniel thank you! 02:46
.tell smls what about writing some tests too to close the ticket? :) They should probably go here: github.com/perl6/roast/blob/d1baf2...ange.t#L51
yoleaux AlexDaniel: I'll pass your message to smls.
02:47 ilbot3 joined 03:03 dugword joined 03:07 dugword left 03:22 curt_ joined
SmokeMachine Is it possible to have 2 versions of the same module on a distribution? 03:30
03:46 lmmx left 03:55 Vynce joined 03:57 ocbtec left 03:58 TEttinger joined 04:06 Actualeyes left 04:07 Actualeyes joined
Geth cosystem: FCO++ created pull request #287:
Adding DateTime::Extended to the ecosystem
04:08
04:15 faraco joined 04:27 dugword joined 04:43 faraco left 04:50 bjz left 04:58 cibs left 04:59 cibs joined 05:06 BenGoldberg left 05:37 zacts joined 05:39 dugword left, khw left 05:40 Cabanossi left 05:41 Cabanossi joined 05:48 CIAvash joined 06:21 faraco joined 06:23 bjz joined 06:39 dugword joined 06:43 raiph left 06:44 dugword left 06:48 bjz_ joined 06:49 bjz left 07:24 dugword joined, bjz joined, bjz_ left 07:27 aborazmeh left 07:30 dugword left 07:47 kyan left
Geth cosystem: 82121abe91 | (Fernando Correa de Oliveira)++ | META.list
Adding DateTime::Extended to the ecosystem
07:48
08:04 cibs left 08:05 cibs joined 08:07 domidumont joined 08:10 FROGGS joined 08:13 domidumont left, domidumont joined 08:25 Alikzus left 08:30 dugword joined 08:34 dugword left 08:35 RabidGravy joined 08:44 Alikzus joined 09:15 domidumont left
samcv yes SmokeMachine well at least we should be able to do that now 09:20
since the recentish changes
brokenchicken you can load two; but can you have the two in the same distro? Doesn't version get read from META file? 09:24
09:30 rindolf joined, wamba joined 09:35 trnh joined
Geth cosystem: faraco++ created pull request #288:
Added WebService::Gitter to ecosystem
09:41
09:45 espadrine joined, Vynce left
samcv hm 09:49
would be really nice if we could have special int key hashes 09:50
or at least have it basically flagged to always treat those as they are integers even if they're stored as strings or something. so .sort works right
and don't have to .sort({$^a.Int cmp $^b.Int}) 09:51
09:52 Tonik joined
brokenchicken m: my %h{Int}; %h = 42 => "meow"; say %h.keys[0].^name 09:55
camelia rakudo-moar 2140c9: OUTPUT«Int␤»
brokenchicken m: my %h{int}; my int $x = 42; %h = $x => "meow"; say %h.keys[0].^name
camelia rakudo-moar 2140c9: OUTPUT«Type check failed in binding to key; expected int but got Int (42)␤ in block <unit> at <tmp> line 1␤␤»
brokenchicken :( 09:56
m: my %h{int}; my int $x = 42; %h{$x} = "meow"; say %h.keys[0].^name
camelia rakudo-moar 2140c9: OUTPUT«Type check failed in binding to key; expected int but got Int (42)␤ in block <unit> at <tmp> line 1␤␤»
brokenchicken m: my %h{int}; %h{my int $ = 42} = "meow"; say %h.keys[0].^name
camelia rakudo-moar 2140c9: OUTPUT«Type check failed in binding to key; expected int but got Int (42)␤ in block <unit> at <tmp> line 1␤␤»
brokenchicken weird
wtf is up with "prhero"? Some bot? 09:57
"Repositories: 0; Stars: 1.6K"....
09:59 trnh left
Geth cosystem: b195f63a01 | faraco++ | META.list
Added WebService::Gitter to ecosystem

First release.
10:00
cosystem: c1e6a55aba | (Juan Julián Merelo Guervós)++ | META.list
Merge pull request #288 from faraco/master

Added WebService::Gitter to ecosystem
10:01 AlexDaniel left 10:07 Tonik left 10:24 ChoHag joined
samcv yeah i noticed that too brokenchicken 10:27
not sure about prhero but
that int doesn't work. perl 6 just boxes it up
i think even if you try and unbox
m: my %h{int}; my int $x = 32; %h{$x} = 'test'
camelia rakudo-moar 2140c9: OUTPUT«Type check failed in binding to key; expected int but got Int (32)␤ in block <unit> at <tmp> line 1␤␤»
samcv m: use nqp; my %h{int}; my int $x = 32; %h{nqp::unbox_i($x)} = 'test' 10:28
camelia rakudo-moar 2140c9: OUTPUT«Type check failed in binding to key; expected int but got Int (32)␤ in block <unit> at <tmp> line 1␤␤»
samcv yep
kalkin- I published my new module github.com/kalkin/License-Software . Before doing a PR to ecosystem, I would ask you guys to read the README and tell me if you get what this is for
brokenchicken kalkin-: by name of the module, I'm guessing it's for programatically detecting/indicating module's lisense :) 10:30
m: use nqp; my %h{int}; my int $x = 32; %h{nqp::decont($x)} = 'test'
camelia rakudo-moar 2140c9: OUTPUT«Type check failed in binding to key; expected int but got Int (32)␤ in block <unit> at <tmp> line 1␤␤»
samcv you used a circled letter C instead of a copyright symbol
© <copyright circledletterc Ⓒ
kalkin- brokenchicken: not detecting. :)
samcv: ohh, thanks
samcv np
kalkin- They look the same :-/ 10:31
samcv wouldn't have pointed it out. but the module is a license handling one ;)
brokenchicken the latter looks like 3 times larger on my font
kalkin- samcv: yes of cours
*e
samcv depends on the font, and the spacing is different
brokenchicken kalkin-: well... then I've no idea. I've read the readme and it says "applying license" which makes no sense to me. 10:32
10:32 dugword joined
samcv usually copyright is not centered vertically 10:32
but (C) is centered vertically
the circled one
copyright is higher up and usually smaller
kalkin- brokenchicken: you can use it to create tools for applying license to your source code
samcv ohhhhhhhhhhhhhh
brokenchicken kalkin-: but what does "applying license" even mean?
samcv you mean
kalkin- i.e. i have a mi6 fork which does generate all the needed license files and headers when generating a project
samcv adding headers?
i had no clue what it did by reading it tbh tho 10:33
kalkin- That's what i expected :(
samcv except maybe it allows you to relicense other peoples work easily ;)
brokenchicken generating all the files and headers to me would be "adding a license" :)
samcv just relicense all code on your computer to your desired license ;)
i like applying better
well. i mean. being able to choose whatever license you want could have perks 10:34
but would not be legal
kalkin- This library should be used by tools which create project skelletons
is this a better summary?
brokenchicken Isn't there same-named module in Perl 5? Just use their desc 10:36
10:36 dugword left, araujo left
kalkin- Software::License - packages that provide templated software licenses ← This makes more sense 10:37
10:37 araujo joined, araujo left, araujo joined, labster left 10:43 TEttinger left 10:48 trnh joined 10:49 shayan_ left, shayan_ joined 10:54 araujo left 10:55 araujo joined, araujo left, araujo joined 10:56 ChoHag left
kalkin- brokenchicken & samcv thanks for the critique. I reworded the descriptions and did a PR to perl6/ecosystem 10:57
brokenchicken You did? 10:58
u lie 10:59
:}
kalkin- License::Software - provides templated software licenses
brokenchicken: Reload page?
brokenchicken There's no PR
kalkin- huch 11:00
11:00 espadrine left
kalkin- Ohh i thought when i change it via browser it does a PR automatically. Looks like i still have to do a PR by hand 11:00
Geth cosystem: kalkin++ created pull request #289:
Add License-Software to ecosystem
11:01
kalkin- ahh!
Geth cosystem: 99990b1073 | (Bahtiar Gadimov)++ | META.list
Add License-Software to ecosystem (#289)
11:04 trnh left 11:13 faraco left 11:20 jsimonet joined 11:23 jmerelo joined
jmerelo hi all 11:23
p6: say 3 ≠ 4
camelia rakudo-moar 2140c9: OUTPUT«5===SORRY!5=== Error while compiling <tmp>␤Confused␤at <tmp>:1␤------> 3say 37⏏5 ≠ 4␤ expecting any of:␤ infix␤ infix stopper␤ postfix␤ statement end␤ statement modifier␤ stateme…»
jmerelo p6: 6 ≲ 8 11:24
camelia rakudo-moar 2140c9: OUTPUT«5===SORRY!5=== Error while compiling <tmp>␤Confused␤at <tmp>:1␤------> 0367⏏5 ≲ 8␤ expecting any of:␤ infix␤ infix stopper␤ statement end␤ statement modifier␤ statement modifier loop␤»
brokenchicken hi
jmerelo I really *expected* that to work. There is probably a good reason for not implementing those operators, but it would be really cool. 11:25
brokenchicken heh
There's the other side to "cool"... Bugs, slowness, and messy internals. 11:26
Try to find all the commits for U+2212 minus in core.
jmerelo but
p6: say 2⁷ 11:27
camelia rakudo-moar 2140c9: OUTPUT«128␤»
kalkin- when will be 2017.01 rakudo released?
end of the month?
brokenchicken jmerelo: but.. 11:28
m: constant $NQP_UR = 'github.com/perl6/nqp';
camelia ( no output )
brokenchicken ggrrr
Please hold while I rectify copy-paste issues on this dumb terminal.
m: say ⁶⁶ 11:29
camelia rakudo-moar 2140c9: OUTPUT«46656␤»
brokenchicken jmerelo: ^ but
Oh, and I got one more
m: say my $i = 2; say $i++**2
camelia rakudo-moar 2140c9: OUTPUT«2␤4␤»
brokenchicken m: say my $i = 2; say $i++²
camelia rakudo-moar 2140c9: OUTPUT«2␤4␤»
brokenchicken Oh, that's not it 11:30
CIAvash jmerelo: irclog.perlgeek.de/perl6/2016-01-09#i_11859391
brokenchicken m: say my $i = 2; say ++$i**2
camelia rakudo-moar 2140c9: OUTPUT«2␤9␤»
brokenchicken m: say my $i = 2; say ++$i²
camelia rakudo-moar 2140c9: OUTPUT«5===SORRY!5=== Error while compiling <tmp>␤Operators '++' and '²' are non-associative and require parentheses␤at <tmp>:1␤------> 3say my $i = 2; say ++$i²7⏏5<EOL>␤ expecting any of:␤ postfix␤»
brokenchicken jmerelo: ^ another one
jmerelo so you are saying that implementing that is difficult enough, and fraught with peril
brokenchicken jmerelo: the say ⁶⁶ isn't even a bug.
jmerelo so getting into other unicode operators would make the whole thing even more difficult 11:31
brokenchicken jmerelo: I'm saying that it's easy to add a crapton of unicode ops just so you could show a "cool" example, say, on Twitter. But I doubt many programmers would use these in production, multi-dev codebases. On the core code side however, these introduce a ton of bugs and weird edge cases that the core devs then waste time fixing and implementing; and once the bugs are fixed there's a performance penalty for 11:32
extra parsing.
kalkin- brokenchicken: but I think in the case of ≠ there shouldn't be any issues 11:33
jmerelo @CIAvash I see, it's been discussed already.
brokenchicken heh
kalkin-: yeah, I bet that's what people said when U+2212 was added. 11:34
kalkin- brokenchicken: :D i see
jmerelo @brokenchicken but cool examples on Twitter are cool ;-)
But I see your point.
brokenchicken I doubt it's even fixed completely.
Yup
m: say sprintf '%-2.f', 42
camelia rakudo-moar 2140c9: OUTPUT«42␤»
brokenchicken m: say sprintf '%−2.f', 42 11:35
camelia rakudo-moar 2140c9: OUTPUT«Directive −2.f is not valid in sprintf format sequence %−2.f␤ in any at /home/camelia/rakudo-m-inst-1/share/perl6/runtime/CORE.setting.moarvm line 1␤␤»
brokenchicken That's after I already fixed so many bugs with it, I lost count of how many of them we had
jmerelo I see 11:36
brokenchicken My suggestion would be to add this type of stuff as a user-space module (with slangs or custom ops).
At least as a precursor to inclusion in core. So that (a) we know there's enough users to justify the addition of the op; (b) all the buggy edgecases are shaken out or at least discovered 11:37
jmerelo I could try and do that, sure. 11:38
brokenchicken AlexDaniel had a gist with a whole ton of candidates.
kalkin- gist.github.com/AlexDaniel/c89bd2786f9b63f31e4c 11:39
brokenchicken Yeah, that's the one.
kalkin- I think we have this unicode debate once a month or so ☺ 11:40
jmerelo I'd love the electric arrow
Would vote for it to go first!
The "Harry Potter" operators. 11:41
@kalkin with outcome being? Will not do it in the foreseeable future? 11:42
kalkin- jmerelo: no outcome. 11:43
jmerelo: if you are really interested you could write a script which downloads modules from ecosystem, runs tests on them, replaces some chars and runs the tests again
this would probably uncover most bugs
jmerelo I see subscripting is mentioned in that gist. I would see subscripting as something that would be great in variable names. Not really for array indexing. 11:44
@kaling um, that's an idea.
samcv why electric one 11:45
≈ why not this then? electric doesn't look very much like the righ tone
like uh ~~
≈ does though
11:45 notbenh joined
samcv but i mean that has a real life meaning so maybe not good either 11:45
jmerelo gist.github.com/AlexDaniel/c89bd27...3f31e4c#-1
11:45 dotness joined
jmerelo I guess it just looks cook. 11:46
cool, I mean.
samcv also regarding The problem is that both are not rendered very nicely by current fonts. ⩴ s also very wide.
jmerelo Probably that's a good reason too for not introducing them unless they have a pretty obvious and unambiguous meaning.
kalkin- samcv: well we could stop using monospaced fonts. there is no reason for using them, besides using vim on terminal :-/
samcv i mean. that's the problem with the font, i mean if people want to use ::= because it's wider that's fine but, I don't think there's a problem adding them
jmerelo … is not too nice either, but there you have it. 11:47
samcv yeah i use monospace because I don't have a way to align things up
i mean
kalkin- AFAIK no terminals can cope with non monospaced fonts without getting broken 11:48
samcv how does that relate to perl 6 though?
or is that just an aside. i mean
brokenchicken kalkin-: check it out: 11:49
m: constant &infix:<≠> = &infix:<!=>; say 2 != 5 != 5
camelia rakudo-moar 2140c9: OUTPUT«False␤»
brokenchicken m: constant &infix:<≠> = &infix:<!=>; say 2 ≠ 5 ≠ 5
camelia rakudo-moar 2140c9: OUTPUT«True␤»
kalkin- samcv: well I proposed using long double arrow instead of ==> but this was rejected because you can't distinguish it from other double arrows in monospaced fonts
samcv is there a way to edit with a non-monospaced font but still have things align right
hm
i disagree with that but
that's my opinion
11:50 dotness left
kalkin- samcv: i think there is. I think unicode provides whitespace with different length? so your editor needs to be a proper typography software 11:50
samcv i mean i disagree with that being a good reason not to allow it. in practice you should use what works best visually
uhm there's east asian width property
mathematical symbols usually have Neutral value for that tho
or you can use Fira Code ligatures 11:51
and it magically looks right
and is the right width. but that's not relevant except for visually looking at the code
kalkin- samcv: Are the Fira Code ligatures for long double arrow and double arrow different enough? 11:52
samcv uhm they're different widths
they are the width of the ascii letters
can use with terminal programs maybe too, but at least it works for atom with atom-language-perl6
and i have it disable ligatures for quoted strings and comments and pod and stuff 11:53
or anything else that is broken into multiple uhm, tokens for the syntax highlighting grammar
actually for some reason it doesn't render ==> as a ligature but probalby it's breaking it into => and = or something would have to chec 11:54
yeah it is.
i gotta head to bed. night all o/ 11:55
kalkin- brokenchicken: nice!
samcv: night
jmerelo good night 12:00
kalkin- still dreams of having a terminal emulator where i can read manpages with proper ligatures for example for fi 12:02
and different font sizes
and a lot more
Tex really spoiled me
masak yeah, wow 12:08
I could totally work with a TeX-based terminal emulator 12:09
(hi, #perl6)
12:10 fatguy joined
moritz would hate to see "underfull hbox (badness 1000)" all the time :-) 12:11
brokenchicken hmmm "Parameter '$json' expected a writable container, but got Hash value" :/ but I'm giving it results of from-json stored in a var :\ 12:17
star: use JSON::Tiny; my $e = from-json '{"foo":"bar"}'; sub ($json is rw) {}($e) 12:18
camelia ( no output )
brokenchicken ... so wtf...
kalkin- Is it best practice to have the POD at the bottom of the file? Or is it just best practice for perl5? 12:19
12:20 TimToady left
kalkin- is thinking about adding Pod::EOD to his mi6 fork 12:20
12:22 TimToady joined
brokenchicken star: use JSON::Tiny; my $e = from-json '{"foo":"bar"}'; sub foo ($json is rw) {}; sub bar ($e) { foo $e }($e) 12:22
camelia star-m 2016.10: OUTPUT«Parameter '$json' expected a writable container, but got Hash value␤ in sub foo at <tmp> line 1␤ in sub bar at <tmp> line 1␤ in block <unit> at <tmp> line 1␤␤»
brokenchicken star: use JSON::Tiny; my $e = from-json '{"foo":"bar"}'; sub foo ($json is rw) {}; sub bar ($e is rw) { foo $e }($e)
camelia ( no output )
brokenchicken shakes head
kalkin- m: my Int $f .= new: 3 # how did this work again? 12:26
camelia ( no output )
kalkin- m: my Int $f .= new: 3; say $f # how did this work again?
camelia rakudo-moar 2140c9: OUTPUT«3␤»
kalkin- hmm weird 12:27
never mind
12:31 mr_ron left 12:32 mr_ron joined 12:33 faraco joined, dugword joined
masak kalkin-: what in particular is confusing you? the fact that you can pass the Int 3 to Int.new? 12:34
kalkin- masak: i had a typo in my shell and thought the .= METHOD form is used wrong by me
retyping it here properly worked
12:38 dugword left 12:39 faraco left 12:49 shayan_ left 12:50 Geth left 12:51 Geth joined, ChanServ sets mode: +v Geth 12:55 iH2O joined
kalkin- how can i filter a hash and get back a hash and not a list of pairs or a Seq 12:58
kalkin- tried with grep
ahh i can just assign the result to Hash.new 13:00
13:01 CIAvash left
SmokeMachine Can I do, on a provides block of META6.json, "A": ["lib/ver1/A.pm6", "lib/ver2/A.pm"] 13:03
brokenchicken m: my %h = foo => 42, bar => 31337; dd %h.grep(*.value.is-prime).Hash
camelia rakudo-moar 2140c9: OUTPUT«Hash % = {:bar(31337)}␤»
SmokeMachine ? 13:04
And on lib/ver1/A.pm6: class A:ver<1> 13:05
kalkin- brokenchicken: thanks
SmokeMachine: no
SmokeMachine: you can do A:ver<1> : "...", A:ver<2> : "..." 13:06
13:06 infrabyte joined
kalkin- the key is your compunit and the value is the source providing it 13:06
13:06 infrabyte left
SmokeMachine kalkin-: does that work? I tried... I probably did something wrong, but didn't work... 13:07
kalkin- SmokeMachine: AFAIK rakudo ignores use the version and auth adverbs when you do use Foo:ver
(for now)
brokenchicken it doesn't 13:08
kalkin- brokenchicken: it doesn't ignore them or it doesn't use them?
brokenchicken doesn't ignore them
m: use Test:auth<meows>
camelia rakudo-moar 2140c9: OUTPUT«===SORRY!===␤Could not find Test:auth<meows> at line 1 in:␤ /home/camelia/.perl6␤ /home/camelia/rakudo-m-inst-1/share/perl6/site␤ /home/camelia/rakudo-m-inst-1/share/perl6/vendor␤ /home/camelia/rakudo-m-inst-1/share/perl6␤ CompUn…»
brokenchicken m: use Test:ver<70>
camelia rakudo-moar 2140c9: OUTPUT«===SORRY!===␤Cannot resolve caller Numeric(Version: ); none of these signatures match:␤ (Mu:U \v: *%_)␤»
brokenchicken :S
m: use Test:ver<6.e>
camelia rakudo-moar 2140c9: OUTPUT«===SORRY!===␤Could not find Test:ver<6.e> at line 1 in:␤ /home/camelia/.perl6␤ /home/camelia/rakudo-m-inst-1/share/perl6/site␤ /home/camelia/rakudo-m-inst-1/share/perl6/vendor␤ /home/camelia/rakudo-m-inst-1/share/perl6␤ CompUnit:…»
kalkin- may be I misunderstood ugexe
brokenchicken m: use Test:ver<6.c>:auth<perl>
camelia ( no output )
13:09 darutoko joined, iH2O left
brokenchicken kalkin-: it was probably about :ver and :auth declared in modules; and the dist uses META data instead of those IIRC 13:09
SmokeMachine: what exactly "doesn't work" mean? 13:10
kalkin- brokenchicken: yeah probably
brokenchicken A:ver<1> : "...", A:ver<2> : "..." is invalid JSON, for one
SmokeMachine You mean with the "s? 13:11
13:11 infrabyte joined
SmokeMachine I have tried :"A:ver<1>": "lib/v1/A.pm6" 13:13
And it couldn't find A:ver<1>... on a use...
13:16 azawawi joined
azawawi hi 13:16
Started working on GTK::Scintilla tests :) # github.com/azawawi/perl6-gtk-scint...02-basic.t 13:17
sammers hi perl6 13:19
13:25 bjz left
RabidGravy azawawi, nice one 13:30
13:35 dugword joined
thundergnat tell samcv "samcv> and don't have to .sort({$^a.Int cmp $^b.Int})" -- an arity 1 sort will be at least twice as fast. Try: .sort( +*.key ) 13:35
yoleaux 7 Jan 2017 23:02Z <raiph> thundergnat: Re: "simple way to unpack a list of lists of lists" Maybe as at stackoverflow.com/a/37230217/1077672?
azawawi RabidGravy: Long time no see :) 13:37
thundergnat .tell samcv "samcv> and don't have to .sort({$^a.Int cmp $^b.Int})" -- an arity 1 sort will be at least twice as fast. Try: .sort( +*.key
yoleaux thundergnat: I'll pass your message to samcv.
RabidGravy :)
thundergnat .tell raiph Thanks for the link. Almost exactly my question. 13:38
yoleaux thundergnat: I'll pass your message to raiph.
azawawi RabidGravy: been busy with github.com/azawawi/SwiftyZeroMQ :)
RabidGravy: and playing wow :) 13:39
azawawi ducks
13:39 dugword left
RabidGravy I am disconsolately looking at the Informix SDK example code trying to work out how to make DBDish::Informix 13:41
13:42 xinming_ joined
azawawi RabidGravy: share :) 13:42
13:45 ChoHag joined, xinming left, jmerelo left
RabidGravy I have only got as far as getting a working informix environment 13:46
azawawi RabidGravy: what do you think $editor.get-char-at (like the scintilla docs) but $editor.char-at (more Perl6ish)? 13:49
13:51 Gasher joined
RabidGravy I'd go with the latter as it's shorter :) 13:51
13:52 cibs left
azawawi RabidGravy: cool thx 13:52
RabidGravy: Quick question on the usage of Test::META with TEST_AUTHOR. We shouldnt add Test::META to META6.info in that case, right? 13:53
13:54 cibs joined 13:56 vimal2012 joined
RabidGravy You shouldn't need it if you are going to assume that it's installed no 13:56
of course you may still want to check that it's present 13:57
13:58 lukaramu joined 14:03 zakharyas joined 14:06 curt_ left, curt_ joined
RabidGravy I am in a quandary whether to use the informix CLI API or the ESQL/C interface like DBD::Informix does 14:06
14:13 vimal2012 left
azawawi RabidGravy: thx 14:17
14:21 cdg joined 14:27 azawawi left 14:29 RabidGravy left 14:30 wamba left, wamba joined
Geth cosystem: kalkin++ created pull request #290:
Add Ddt - Distribution Development Tool
14:34
cosystem: 2ba57a5cf4 | (Bahtiar Gadimov)++ | META.list
Add Ddt - Distribution Development Tool
14:35
14:36 cdg left, domidumont joined, RabidGravy joined
kalkin- If i would extend ddt to generate depends META6 field by just grepping "use .*" from source files would it be enough or are there some edge cases where I can't deduce the dependencies from source code? There shouldn't be any? 14:39
moritz you have to be a bit more careful 14:40
first, the 'use' statement might be in pod
second, 'use' could refer to internal modules (dependencies in META6.json are only for external ones) 14:41
or to core things, like MONKEY-... pragmas
kalkin- ok, so i have to strip out internal modules, I probably should use Perl6::Parser to get only use statements outside of pod blocks and ignore the core things 14:42
anything else?
DrForr pricks up his ears.
kalkin- hmm, or is using Perl6::Parser overkill… May be i can solve it differently, by using Pod::Strip, which looks less heavy to me as the Parser thingy 14:43
14:43 domidumont left
kalkin- but at some point i will need Perl6::Parser anyway if I want to make ddt smarter 14:43
14:45 domidumont joined 14:57 lmmx joined
kalkin- is it the right thing to do to set “auth” field in META6.json to “github:$USER” when source url is github? 14:59
15:01 _28_ria joined 15:05 g__k__ left 15:21 pecastro left 15:30 xinming_ left 15:31 xinming joined
kalkin- argle zef can't handle github https urls not ending in .git 15:32
15:36 bwisti joined, dugword joined 15:40 dugword left 15:47 zakharyas left 15:48 zakharyas joined 15:49 holli_ joined 15:50 holli left 15:56 zakharyas left 15:57 zakharyas joined 16:00 holli__ joined 16:03 holli_ left 16:14 holli_ joined 16:16 holli__ left 16:23 lmmx left, lmmx joined
jdv79 what is $() again? 16:25
16:25 shayan_ joined 16:27 dugword joined
timotimo isn't that $/.ast // $/.Str? 16:28
potentially || instead of //
jdv79 i just have something that i think should be a hash but seems to be a list wrapping the hash
i just don't get the syntax or context of it yet
timotimo with $( ... ) you itemize a thing 16:29
but $() is A Thing
m: "hello" ~~ / . /; say $().perl
camelia rakudo-moar 2140c9: OUTPUT«"h"␤»
timotimo m: "hello" ~~ / . { make "oh yeah" } /; say $().perl
camelia rakudo-moar 2140c9: OUTPUT«"oh yeah"␤»
16:29 shayan_ left
jdv79 say $(:k('v')).WHAT 16:30
m: say $(:k('v')).WHAT
camelia rakudo-moar 2140c9: OUTPUT«(Pair)␤»
jdv79 m: say $(:k('v'),:k2('v')).WHAT 16:31
camelia rakudo-moar 2140c9: OUTPUT«(List)␤»
b2gills m: $/ = class { method ast { 'ast' }; method Str {'Str'}}; say $()
camelia rakudo-moar 2140c9: OUTPUT«ast␤»
b2gills m: $/ = class { method ast { Any }; method Str {'Str'}}; say $()
camelia rakudo-moar 2140c9: OUTPUT«Str␤»
16:31 khw joined
jdv79 that "looks" like a hash as an item type thing to me 16:31
timotimo m: $/ = class { method ast { False }; method Str {'Str'}}; say $() 16:32
camelia rakudo-moar 2140c9: OUTPUT«Str␤»
timotimo jdv79: not sure how you mean that
b2gills I think it should be $/.ast // $/.Str, but is $/.ast || $/.Str currently
jdv79 ok
timotimo just a list of pairs will just be a list 16:33
:1foo,:2bar only becomes a hash if it gets assigned to a %var or %(...) or .Hash or .hash
but before that it's still just a List of Pair objects 16:34
16:40 sammers left
jdv79 thanks 16:43
16:45 shayan_ joined 16:46 dotness joined 16:49 shayan_ left 17:01 mxco86 joined 17:09 kent\n is now known as kentnl 17:10 kentnl is now known as kent\n 17:12 dugword left
SmokeMachine about 2 versions of a module on the same dist: 17:51
this doesn't work... www.irccloud.com/pastebin/hnjqbRqO/
brokenchicken SmokeMachine: why do you need to versions anyway? 17:52
SmokeMachine brokenchicken: retro-compatibility if I change my API... 17:53
brokenchicken "if" you change it?
Basically you have no need for this ATM? 17:54
ugexe the confusion here is that zef understands that versioning syntax, but the CURs dont
yoleaux 13 Jan 2017 16:40Z <tbrowder> ugexe: see www.irccloud.com/pastebin/ZJJNBEL2...-data-dump
brokenchicken SmokeMachine: here's how tbrowder released two different versions:
github.com/perl6/ecosystem/blob/ma...#L732-L733
SmokeMachine brokenchicken: if I create a new API version Ill include it and my last API version (but deprecated) on my dist... 17:55
brokenchicken SmokeMachine: "if"? So you've no actual need for this ATM?
Seems you're trying to solve an invented problem... 17:56
SmokeMachine not yet...
brokenchicken And if you ever do create a new API; by that time our Ecosystem and supporting software may be radically different.
.oO( we also have the :api<> adverb... )
ugexe and probably using the :api<> version thing 17:57
SmokeMachine brokenchicken: but if Im releasing a module, it would be good to know how im doing on next releases
kalkin- TIL about :api adverb. What is the difference between :api & :ver?
SmokeMachine kalkin-: thats what I was going to ask! 17:58
ugexe nothing yet. dont use it
kalkin- :D
17:58 raschipi joined
ugexe or rather dont use it and expect it to do anything different yet 17:58
kalkin- may be we should use :ver on distributions and :api on compunits
brokenchicken SmokeMachine: I already showed you a way to release two versions. You could also use a different name. Or a different auth. Or NOT pack two apis in the same distro version (those who need old one can use old version). 17:59
SmokeMachine: the only reason you'd ever have this as a real problem is if you write a succefful software and THEN also find out your current API sucks so much you have to change it entirely. For something so unlikely, feels strange to me to waste so much time trying to think how to do it right now. 18:00
kalkin- brokenchicken: I asked the same question a few days ago. People see :ver and expect it to somehow work 18:01
18:01 shayan_ joined
kalkin- and then they notice that you have to handle it manually for modules.perl6.org 18:01
ugexe so i could easily put together a script to automatically add versions to the ecosystem, but thats going to explode the size of the package list and take longer to parse
brokenchicken kalkin-: Yes, because our current ecosystem is a temporary hack of a solution; which makes SmokeMachine's attempt to solve a problem they can't possibly encounter for another couple of years even more bizzare. 18:02
kalkin- SmokeMachine: you could properly tag your git releases and then write a better modules.perl6.org implementation which takes it in to account 18:03
I have thought about it but it's elaborate for me and I don't have the time for it 18:04
you could even go as far as auto add all repos from GitHub which are written in Perl6 and have a META6.json
SmokeMachine: your issue is solvable, but no one yet had the time to implement it. May be you would be the first one? 18:05
SmokeMachine ugexe: so much longer that is it impractical? 18:06
18:06 azawawi joined
azawawi hi 18:06
ugexe: ping
kalkin- ugexe: I don't think it would be impractical because there're are not many properly tagged distributions on GitHub (i wrote a script to check it)
SmokeMachine kalkin-: I'd love! But im not sure I have enough knowledge to do that... 18:07
kalkin- SmokeMachine: it's not complex. You don't even need to use perl6. I probably could do it in a shell script, but it just takes time
(a middlesized shell script)
azawawi ugexe: is there a way in zef to use a Build.pm that does not depend on panda? 18:08
kalkin- azawawi: zef build ?
ugexe SmokeMachine: pretty much (between that and how long it takes to write updates). although if the meta data was filtered down to only essential items it could help
SmokeMachine kalkin-: but I don't think (IMHO) that should be made by git tags... I would like to have more than one module version on a dist...
azawawi kalkin-: i meant Build.pm code that does not use Panda::Builder
ugexe kalkin-: you can do versions without doing a release - you can link to a tar.gz of a specific commit 18:09
azawawi: github.com/niner/Inline-Perl5/comm...b3ab3c7d11
kalkin- ugexe: right, but I thought SmokeMachine's issue is that you have to do it by hand. Using git tags you could automate it away 18:10
azawawi ugexe: perfect. thx
ugexe++
kalkin- ugexe: Can I install two different versions of the same dist with zef? AFAIK I can, right? if so SmokeMachine doesn't need to package both in same Distribution 18:11
ugexe correct
kalkin- we just need an alternative to modules.perl6.org which is smarter (if some one really wants to write that) 18:12
brokenchicken uhh, this will literally solve nothing "<kalkin-> and then write a better modules.perl6.org"
Module installers don't even use that site. 18:13
18:13 dugword joined
brokenchicken And wasted effort too; much better to put those coder-hours into CPAN thing ranguard and mst are working on 18:13
kalkin- brokenchicken: ok an automatically generated META.list hosted on your own http server
brokenchicken: link?
SmokeMachine what I really want is: if some one is using version A of my dist and do "use MyMod:ver<0.1>", than when it runs "zen update MyDist" and it updates to distilled version B, it will get MyMod:ver<0.2> and MyMod:ver<0.1>... so its code won't break... but will start to note() thats deprecated... 18:14
kalkin- s/modules.perl6.org/p6c CUR
brokenchicken kalkin-: I dunno what it is.
kalkin- SmokeMachine: I'm not sure you want that. If you want to release your software with fixed version dependencies you should do that. Look for example how rvm + bundle + Gemfile combo works for Ruby 18:15
brokenchicken I've seen an occasional link and I saw mst post the "we're running experimental uploder now" blog post, but I wouldn't say the effort is well communicated
kalkin- brokenchicken: p6c is the zef repo which is backed by the ecosystem
brokenchicken Which I'd wager is the reason why the effort is progressing very slowly. 18:16
SmokeMachine ugexe: but if i have the MyDist version 1 and i run "zef update MyDist" it will update and I will not have the MyDist version 1 anymore, right?
brokenchicken kalkin-: "p6c"?
ugexe p6c is the terminology for *~*the ecosystem*~* 18:17
kalkin- brokenchicken: look in to your zef config.json
brokenchicken .ask mst what's happening with the Perl 6 MetaCPAN / PAUSE effort? How can willing hands contribute?
yoleaux brokenchicken: I'll pass your message to mst.
18:17 dugword left
brokenchicken kalkin-: I don't have zef config.json 18:17
ugexe e.g. ecosystem-api.p6c.org/projects.json
brokenchicken right 18:18
That thing still has all the problems with our current ecosystem
SmokeMachine ugexe: ^^
kalkin- brokenchicken: zef 2>&1|grep config.json
brokenchicken kalkin-: "zef: command not found"
kalkin- brokenchicken: well you could have just said that :P
18:20 xinming left 18:21 xinming joined, dotness left
ugexe SmokeMachine: that depends on you. as its been pointed out you *can* release versions to the ecosystem 18:21
kalkin- I think i found an article shadow.cat/blog/matt-s-trout/the-ps...xperiment/
brokenchicken kalkin-: that's the thing yes, tho AFAIK there's been more progress since that article's publishing date. 18:22
And ranguard twice was asking about how to validate dists for their upload script, and I twice responded that it's a flawed approach, and conversation went nowhere. I'm unsure if that's still the roadblock. 18:23
18:23 infrabyte left
kalkin- After reading the article I'm not much smarter, because I'm never used CPAN to release anything and there is no link to code 18:23
18:23 infrabyte joined
brokenchicken You can *RIGHT NOW* use pause.cpan.org to upload your Perl 6 modules. Like PROPER upload them; not the crummy ecosystem we currently have 18:24
And from what I overheard while randomly glancing at the channel once in a while, zef can even install those now
18:25 dotness joined
kalkin- so if I can upload and zef can download, what's the issue? 18:25
brokenchicken And last year, I also seen jdv79's fork of metacpan that displayed the dists in some version or another, and IIRC one of the challenges there was that we support multi auths but Perl 5's CPAN model doesn't
kalkin-: searching them, for once.
ugexe the new stuff being added isn't getting picked up by zef's indexer. FROGGs mentioned he had something extracting the meta data from the archives, but now cpan only lists the archives themselves 18:26
brokenchicken kalkin-: also, few, if any at all, authors actually upload the modules; hence ranguard's auto-uploader script, which kind'f defeats the purpose, since it uploads whatever random commit happened to be HEAD when the script is run
hmmm
:(
ugexe www.cpan.org/authors/id/P/PS/PSIXDISTS/Perl6/ 18:27
note how older versions have a `*.meta`
brokenchicken huggable: cpan :is: www.cpan.org/authors/id/P/PS/PSIXDISTS/Perl6/ 18:28
huggable brokenchicken, Added cpan as www.cpan.org/authors/id/P/PS/PSIXDISTS/Perl6/
brokenchicken yeah :(
raschipi Does a module receive the requested version so that it can export an older interface like C does? 18:29
kalkin- I know CPAN is a perl thing, but from reading the About Pause page I'm really hesitating to use it. as far as i understand it has an own ticketing system it has own workflows ect... I'm pretty happy with GitHub 18:31
I just want to push to some git repository properly tag it and then some Indexer can index and distribute it
using git is simple, while the whole Pause/CPAN stuff reminds me of the ugly days of web back from the 90s. and I have to create an account there too 18:32
What am I missing? 18:33
ugexe how often does github go down?
kalkin- ugexe: well my own git server is fine too
ugexe: also PAUSE can also go down (CPAN has mirrors afaik, right?) 18:34
18:34 dugword joined
SmokeMachine I can't get it!!! How does it work? www.irccloud.com/pastebin/EOJK5jTo/ 18:35
kalkin- SmokeMachine: what are you doing? 18:36
18:36 sufrostico joined
SmokeMachine testing versions... 18:36
kalkin- How want you ship them? Multiple versions in same Distribution?
ugexe you probably have to install them both and test it that way 18:37
im not sure if CURFileSystem (-I, use lib '...') does versions
SmokeMachine on this test im not use()ing :ver... 18:38
I thinks thats the use lib "."... 18:39
ugexe that use lib isnt doing anything
SmokeMachine yes... when I removed the "use lib "."" from the test.t it stoped working... 18:40
ugexe are there any perl modules in cwd?
SmokeMachine without the use lib "." www.irccloud.com/pastebin/ln408db3/ 18:41
I didn't know thats recursive...
ugexe its not. what do you expect `use lib "."` to be pointing at? 18:42
because both of your modules are in sub directorys of your cwd, so unless you are in the cwd of a perl module root it shouldnt do anything
SmokeMachine Im not... 18:43
ugexe your second example does the right thing 18:44
SmokeMachine ugexe www.irccloud.com/pastebin/OfmFwARb/
but without the use lib "."...
18:45 raschipi left
ugexe probably precomp related... rm -rf .precomp/ 18:45
SmokeMachine ugexe: yes... .precomp 18:47
brokenchicken kalkin-: you're happy with github? What about versioning? 18:49
kalkin- brokenchicken: git tags
brokenchicken kalkin-: and how many authors use them?
ugexe add(?) github oauth and web hooks to pause
18:50 xfix left
kalkin- brokenchicken: if you are not using them it's your fault. this is what git tags are for 18:50
If I would write a replacement script for generating the ecosystem. I would rate the module in different ways one of them would be if you are using proper versioning 18:51
brokenchicken heh
kalkin-: and module installers would ignore any other means but tags to install? 18:52
ugexe thats recommendation manager, not content storage (what cpan is)
kalkin- ugexe: ohh, i thought recommendation manager === cpan
18:52 xfix joined
ugexe metacpan would be a recommendation manager. cpan is only in the aspect that it doesnt allow multiple auths of the same dist name/ver 18:53
brokenchicken kalkin-: and when the author goes insane and deletes their repo, you're OK with your production software breaking as a result?
kalkin- brokenchicken: this depends on your content storage policy.
brokenchicken Or when they delete all the old tags, just 'cause they felt like it, and now the version you pinned your product against no longer exists. 18:54
kalkin-: and what is that policy?
kalkin- brokenchicken: what ever the content storage admin decides.
may be for your company you have an own content storage + recommendation manager which adheres to your needed policy 18:55
brokenchicken kalkin-: so rather than have a solid ecosystem, you're saying it's company's duty to maintain backups all of their dependencies?
All because by using PAUSE you get a free ticket tracker, if you want it too? 18:56
kalkin- brokenchicken: no rather depending on other I preffer to depend on people I trust, this can be the CPAN admins or my company or me myself
s/other/others
brokenchicken :S
I'm confused then.
You first say you're against CPAN, but now you say it can be CPAN? 18:57
kalkin- brokenchicken: I'm not against CPAN I'm for choice
brokenchicken OK
ugexe you can install cpan modules without corporate security shitting up the forced https of github
kalkin- brokenchicken: also why do we have the support field in META6 if we all going to use CPAN for tracking bugs? 18:58
brokenchicken kalkin-: you're confused about the systems involved. 18:59
kalkin- brokenchicken: may be…
brokenchicken kalkin-: you get shity RT tracker for free when you upload to CPAN, but no one's forcing you to use it.
And that's not why we want to upload to CPAN. 19:00
ugexe metacpan.org/pod/distribution/Inli...line/C.pod look at where the "Issues" points to
brokenchicken As for workflow; in Perl 5 land, I'd just run "dzil release" in my terminal and it tags the release in github and upload to CPAN. The only difference from your git tag version is what you type when you're ready to realese really 19:01
19:01 Tonik joined
brokenchicken And yeah, you need an account, but so does GitHub; and as ugexe mentioned, perhaps there is or can be a way to auto-register via github 19:02
kalkin- I see. 19:03
Ok the only barrier I'm having now is how can I hack PAUSE to work with Perl6? 19:04
cpan search for PAUSE returns a ton of results
brokenchicken IIRC it already does, you just select Perl 6 in one of the fields
brokenchicken logs in to look
kalkin- so what is missing?
just search? 19:05
ugexe hack.p6c.org:5000/v0/release/ # there is also the metacpan stuff jdv79 has worked on
cpan doesnt handle multiple versions of the same dist name
additionally need to make sure it doesn't affect anything for the current perl 5 toolchain 19:06
brokenchicken kalkin-: yeah, you can select Perl 6. Never heard of PAUSE having an API; could check Dist::Zill release module or "CPAN Upload" script batman hacked on to find if they just simulate the web interface when using it from command line: i.imgur.com/fK8cYpo.png
I think this one's it: metacpan.org/release/App-git-shipH 19:08
I think this one's it: metacpan.org/release/App-git-ship
19:09 darutoko left
brokenchicken
.oO( someone motivated should write a Perl 6 PAUSE uploader script...
19:11
)
I think someone shipped a Ddt distro toolkit or soemthing last night? Could be part of it.
kalkin- brokenchicken: I planned to implement some release feature at some point
Yes i shiped ddt :D 19:12
brokenchicken \o/
19:15 confundus joined 19:17 pmurias joined
kalkin- How does CPAN handle different versions in Perl5, or not at all? 19:17
ugexe it handles them as you would probably expect
however, it doesnt understand Foo::Bar:ver<1>:auth<xxx> vs Foo::Bar:ver<1>:auth<qqq> 19:18
kalkin- ahh ic
brokenchicken kalkin-: you can never (unless you try hard) upload a version lesser than the versions you uploaded before. All of the previous versions are still available on all the mirrors, until you delete them from PAUSE. And when you do delete them, they still are permanently available on BackPAN
I wonder if we can cheat with the :auth thing, by simply making it part of the version.... 19:19
Oh, won't help
never mind :P
kalkin- I can add PAUSE upload to Dtd, but I not going to hack on CPAN, because I have no expirience with Perl5 and it looks like a complex language on it's own 19:20
But first I need to clean up Dtd and remove a lot of duplicated code 19:21
pmurias brokenchicken: isn't :auth something that should be part of the name rather then version
kalkin- Does CPAN differentiate between Distribution and compunits? (Not that this is important at the moment…) 19:22
pmurias kalkin-: a given distribution can contain multiple modules 19:23
ugexe only the compiler cares about compunits
a compunit is basically just a Distribution that is loaded
kalkin- I mean can I have distribution A providing Modules X, Y, Z and another Distributions providing the same modules with a different implementation, but exactly same API 19:24
19:25 MasterDuke joined
ugexe im not sure cpan indexes the 'provides' (although metacpan does) 19:25
kalkin- I'm still don't understand how MetaCPAN and CPAN fit together. zef would (at some point in future) ask metacpan (because it's a recommendation manager) for some Module, get back some Distribution name and download it from CPAN? 19:27
geekosaur you can also download from metacpan, since it provides direct links to things. might think of cpan as a database and metacpan as a fancy api for it 19:29
ugexe cpan stores all the distributions.tar.gz
metacpan searches those and makes its own index so that, yes you ask it for a module and it gives you what *it* believes to be correct
19:30 ufobat joined
kalkin- k, thanks for the explanation 19:30
ugexe e.g. with zef --cpan zef acts as the recommendation manager by greppign the meta data of a giant index (same as p6c). with zef --metacpan it does as you said - sends a http request and uses that (although zef does verify it matches) 19:31
19:33 zakharyas left
kalkin- I think I understand now 19:34
19:39 tyilanmenyn is now known as tyil 19:48 Gasher left
kalkin- moritz: thanks for the invitation! 19:48
moritz kalkin-: you're welcome 19:49
19:51 bjz joined
kalkin- I don't want to whine, but registering with PAUSE is much more "complicated" then it should be. First of all you have to state why you are registering and second you need to be manually approved. This are more hurdles then there need to be 19:52
Or do you guys think that this keeps useless modules out of CPAN? 19:53
19:55 AlexDaniel joined, art_ joined, geraud left
art_ Hi, everyone! Perl6 differs greatly from Perl5? What language is best to start learning? 19:59
sjn hi art_ o/ 20:00
both languages are worth learning :)
but having said that, we do have a certain bias towards Perl 6 in this channel :D 20:01
20:01 sufrostico left
sjn art_: what's your goal? work? curiosity? learning to program? exploring advanced concepts? having fun? 20:02
20:02 geraud joined
brokenchicken art_: if your goal is to quickly get a job in the lang or web apps, go with Perl 5; if you're want something fun or fast implementation time is more important than fast run time, go with Perl 6 20:04
And best of both worlds: learn both.
mst kalkin-: the reason for this is basically "people often think they need to register with PAUSE for reasons unrelated to uploading stuff and if they tull us that we can help them do the right thing instead"
yoleaux 18:17Z <brokenchicken> mst: what's happening with the Perl 6 MetaCPAN / PAUSE effort? How can willing hands contribute?
mst brokenchicken: no idea, jdv79 was working on the metacpan stuff 20:05
20:05 dugword left
brokenchicken mst: and the PAUSE stuff? SIXDIST experiment or whatever it was called? 20:05
art_ I already have some experience with a Python, but I want something new. My question is whether the documentation on perl5 to study perl6?
brokenchicken The blog post I recall you wrote about it 20:06
art_: don't understand the question. What do you mean documentation of P5 to study P6?
on P5
DrForr art_: docs.perl6.org, though starting with perl6.org is the right place.
brokenchicken would go with learnxinyminutes.com/docs/perl6/ as a starting point 20:07
And for Perl 5, with modernperlbooks.com/ (ebook version is free, as I recall) 20:08
DrForr art_: The differences beftween Perl 5 and 6 are more extreme than python 2 vs. python 3.
mst errr, I think psixdists is running, ranguard's been popping up in here to ask stuff
brokenchicken Thanks. I'll touch base with ranguard and jdv79 20:09
mst I've not heard him grumbling about it recently so I was presuming you'd already fixed whatever was the problem last time
I kind of only step in to co-ordinate here when something appears to be going sideways
brokenchicken Him is whom ranguard?
mst yes
brokenchicken Oh, no that problem is still there...
mst well, or at least, it was a "you're figuring it out"
Iunno
brokenchicken But at least that gives me a starting point to make this thing move forward....
art_ If I will learn P5 (https: //www.perl.org/docs.html) whether many changes compared to the P6 (perl6intro.com/)? 20:10
20:10 TEttinger joined
brokenchicken art_: yes, Perl 5 and Perl 6 are very differnt languages. 20:10
mst basically if I hear the p5 people bitching excessively about the p6 people or vice versa, I step in; if I don't, I mostly try and leave the people who know what they're talking about to it
we're currently in the latter phase
brokenchicken :)
DrForr art_: Yes, that's what I'd said above.
kalkin- mst: ahh, thanks 20:12
20:12 confundus left
art_ What about the language environment P5: libraries and frameworks? 20:13
brokenchicken .ask jdv79 how is the MetaCPAN thing going? How can willing hands contribute?
yoleaux brokenchicken: I'll pass your message to jdv79.
kalkin- brokenchicken: you were faster :D
brokenchicken art_: very mature in Perl 5; basically non-existent in Perl 6 because the language is just 1 year old and because it's VERY easy to use Perl 5's libs via Inline::Perl5 20:14
kalkin- are there actually any reasons for not to use Inline::Perl5? 20:15
brokenchicken art_: Perl 5: metacpan.org/ Perl 6: modules.perl6.org/
20:15 Gasher joined 20:17 domidumont left
brokenchicken kalkin-: putting all eggs in one basket? Needing perl 6 AND perl 5? Using an API that the author of the module may not wish to support should you encounter any issues? Often ending up with snake_case() routines (common in Perl 5) intermixed with kebab-case() routines common in Perl 6 (and its core) 20:17
20:18 lmmx left
kalkin- brokenchicken: ahh ok. 20:18
brokenchicken It's not a hack, but it's not a perfect solution either.
20:18 lmmx joined
art_ Ok, thanks. 20:21
brokenchicken art_: there's also a perl 5's IRC channel: #perl
20:22 rindolf left
art_ brokenchicken: Ok, but probably I will look towards P6. 20:24
sjn art_: perl6 is really fun. I think you can look forward to exploring it :) 20:26
DrForr waves to sjn. 20:27
20:28 azawawi left
gfldex art_: we got blogs! pl6anet.org/ 20:28
20:29 bjz left
lizmat jj.github.io/perl6em/perl6.html # Perl 6, The Musical 20:29
JJ Merelo ++ 20:30
20:32 rindolf joined
brokenchicken :o 20:34
body { width: 1000px; margin: auto; } 20:36
.seen jjmerelo 20:38
yoleaux I saw JJMerelo 26 Dec 2016 16:58Z in #perl6: <JJMerelo> @mst :-)
brokenchicken spots the mention of ». but no word of the caveat of its autothreading. 20:39
lizmat I understand that comments are welcome :-)
brokenchicken Where can they be placed?
m: say cos π/2 20:40
camelia rakudo-moar 2140c9: OUTPUT«6.12323399573677e-17␤»
20:40 girafe joined
brokenchicken And that ^ is due to π not being actual pi 20:40
lizmat brokenchicken: I guess here github.com/JJ/perl6em
brokenchicken Thanks
m: say pi 20:41
camelia rakudo-moar 2140c9: OUTPUT«3.14159265358979␤»
20:41 nowan joined
brokenchicken hmm. rats wont help with the maximum precision we got in nums... 20:41
20:41 melezhik_ joined
SmokeMachine m: say (Date but role {method day {...}}) ~~ Date; role R {method day {...}; method Date(R:U:) {Date but R}}; say R.Date ~~ Date # Why the first works and the second doesn't? 20:42
camelia rakudo-moar 2140c9: OUTPUT«True␤Method 'day' must be implemented by R because it is required by roles: R.␤ in any compose_method_table at gen/moar/Metamodel.nqp line 2832␤ in any apply at gen/moar/Metamodel.nqp line 2843␤ in any compose at gen/moar/Metamodel.nqp line 3015…»
brokenchicken m: say 314159265358979323846264338327950288419716939937510582/(1 ~ '0' x 53 .EVAL)
camelia rakudo-moar 2140c9: OUTPUT«3.14159265358979␤»
brokenchicken m: say cos 314159265358979323846264338327950288419716939937510582/(1 ~ '0' x 53 .EVAL)
camelia rakudo-moar 2140c9: OUTPUT«-1␤»
brokenchicken \o/ w00t
20:43 nowan_ left, Ven joined
brokenchicken huh, this weird 20:44
m: say cos 314159265 / 100000000
camelia rakudo-moar 2140c9: OUTPUT«-1␤»
brokenchicken m: say cos Num(314159265 / 100000000) 20:45
camelia rakudo-moar 2140c9: OUTPUT«-1␤»
brokenchicken :S
m: say cos pi
camelia rakudo-moar 2140c9: OUTPUT«-1␤»
brokenchicken oh
:(
m: say cos 314159265358979323846264338327950288419716939937510582/(1 ~ '0' x 53 .EVAL)/2
camelia rakudo-moar 2140c9: OUTPUT«6.12323399573677e-17␤»
brokenchicken awwwwww
SmokeMachine is that a bug or is it expected? 20:46
brokenchicken Expected
Not enough precision to get -0.5 20:47
m: say cos 1.57079632679
camelia rakudo-moar 2140c9: OUTPUT«4.89658886014675e-12␤»
SmokeMachine brokenchicken: I mean this:
m: say (Date but role {method day {...}}) ~~ Date; role R {method day {...}; method Date(R:U:) {Date but R}}; say R.Date ~~ Date # Why the first works and the second doesn't?
camelia rakudo-moar 2140c9: OUTPUT«True␤Method 'day' must be implemented by R because it is required by roles: R.␤ in any compose_method_table at gen/moar/Metamodel.nqp line 2832␤ in any apply at gen/moar/Metamodel.nqp line 2843␤ in any compose at gen/moar/Metamodel.nqp line 3015…»
brokenchicken m: (Date but role {method day {...}}).new 20:49
camelia rakudo-moar 2140c9: OUTPUT«Cannot call Date+{<anon|54373392>}.new with no parameters␤ in block <unit> at <tmp> line 1␤␤Actually thrown at:␤ in block <unit> at <tmp> line 1␤␤»
brokenchicken :o
m: (Date but role {method day {...}}).today.day.say
camelia rakudo-moar 2140c9: OUTPUT«15␤»
brokenchicken Ah right, it does have a day
SmokeMachine: it's cause R.Date puns the R role, so it cries about wanting the method 20:50
m: role R {method day {...}; method Date(R:U:) {Date but R}; method meow {} }; R.meow
camelia rakudo-moar 2140c9: OUTPUT«Method 'day' must be implemented by R because it is required by roles: R.␤ in any compose_method_table at gen/moar/Metamodel.nqp line 2832␤ in any apply at gen/moar/Metamodel.nqp line 2843␤ in any compose at gen/moar/Metamodel.nqp line 3015␤ in…»
brokenchicken yup
SmokeMachine m: class C {method test {}}; (C but role {method test {...}}).c 20:51
camelia rakudo-moar 2140c9: OUTPUT«No such method 'c' for invocant of type 'C+{<anon|72338896>}'␤ in block <unit> at <tmp> line 1␤␤»
SmokeMachine m: class C {method test {}}; (C but role {method test {...}}).test
camelia ( no output )
SmokeMachine m: class C {method test {}}; (C but role {method test {...}}) ~~ C 20:52
camelia ( no output )
SmokeMachine m: class C {method test {}}; say (C but role {method test {...}}) ~~ C
camelia rakudo-moar 2140c9: OUTPUT«True␤»
brokenchicken SmokeMachine: it fails before the .Date method is called; its contents are irrelevant.
SmokeMachine m: class C {method test {}}; role R {method test {...}; method C { C but R}}); R.C ~~ C 20:55
camelia rakudo-moar 2140c9: OUTPUT«5===SORRY!5=== Error while compiling <tmp>␤Unexpected closing bracket␤at <tmp>:1␤------> 3{method test {...}; method C { C but R}}7⏏5); R.C ~~ C␤»
20:56 infrabyte left, bjz joined
SmokeMachine m: class C {method test {}}; role R {method test {...}; method C { C but R}}; R.C ~~ C 20:56
camelia rakudo-moar 2140c9: OUTPUT«Method 'test' must be implemented by R because it is required by roles: R.␤ in any compose_method_table at gen/moar/Metamodel.nqp line 2832␤ in any apply at gen/moar/Metamodel.nqp line 2843␤ in any compose at gen/moar/Metamodel.nqp line 3015␤ i…»
20:56 melezhik_ left
brokenchicken Not a bug. 20:57
Geth oc: 57d5071f90 | (Wenzel P. P. Peppmeyer)++ | type-groups.json
In preparation to make /type.html decent, first shot at grouping types.
20:57 lizmat left 20:58 lizmat joined
SmokeMachine brokenchicken: why? 20:58
brokenchicken SmokeMachine: the "R.C" part is short for "class R does R {}.C"; and that class ain't got `test` method, so it complains. 20:59
20:59 dotness left 21:00 bjz left
SmokeMachine :( 21:01
brokenchicken m: class C {method test {}}; role R {method test {...}; method C { C but R}}; say R.^lookup("C")(R) ~~ C
camelia rakudo-moar 2140c9: OUTPUT«True␤»
brokenchicken ehehe cheetsy-doodly
21:03 espadrine joined 21:04 lmmx left, cdg joined, Gasher_ joined, cdg left 21:05 cdg joined, lmmx joined, Gasher left 21:06 dugword joined 21:10 dugword left 21:19 rindolf left
samcv morning 21:22
yoleaux 13:37Z <thundergnat> samcv: "samcv> and don't have to .sort({$^a.Int cmp $^b.Int})" -- an arity 1 sort will be at least twice as fast. Try: .sort( +*.key
samcv thanks thundergnat
brokenchicken evening 21:23
samcv m: my %hash = 1 => 'value', 2 => 'value', 10 => 'value; say %hash.sort({+*.key})
camelia rakudo-moar 2140c9: OUTPUT«5===SORRY!5=== Error while compiling <tmp>␤Unable to parse expression in single quotes; couldn't find final "'" ␤at <tmp>:1␤------> 3, 10 => 'value; say %hash.sort({+*.key})7⏏5<EOL>␤ expecting any of:␤ single quotes␤ …»
samcv m: my %hash = 1 => 'value', 2 => 'value', 10 => 'value'; say %hash.sort({+*.key}) 21:24
camelia rakudo-moar 2140c9: OUTPUT«5===SORRY!5=== Error while compiling <tmp>␤Malformed double closure; WhateverCode is already a closure without curlies, so either remove the curlies or use valid parameter syntax instead of *␤at <tmp>:1␤------> 3, 10 => 'value'; say %hash.sort({…»
samcv m: my %hash = 1 => 'value', 2 => 'value', 10 => 'value'; say %hash.sort(+*.key)
camelia rakudo-moar 2140c9: OUTPUT«(1 => value 2 => value 10 => value)␤»
samcv cool
21:28 raiph joined, shmibs left
brokenchicken and - does it in reverse order 21:29
21:29 Tonik left
kalkin- why does +/- indicate the sort order? Is it just a nice hack or is there some reasoning behind? 21:30
timotimo um
it's because negative values are smaller than positive values
brokenchicken kalkin-: - inverts the numbers when they're being compared, and thus reverses the sort
21:30 FROGGS left
kalkin- ohh 21:30
You just make numbers positive through using + 21:31
(or negative through -)
timotimo you make things into numbers with +
brokenchicken right
m: dd [+"42", -"42", +"-42", -"-42"]
camelia rakudo-moar 2140c9: OUTPUT«[42, -42, -42, 42]␤»
brokenchicken m: my %hash = 1 => 'value', 2 => 'value', 10 => 'value'; say %hash.sort(*.key.Int) 21:32
camelia rakudo-moar 2140c9: OUTPUT«(1 => value 2 => value 10 => value)␤»
brokenchicken m: my %hash = 1 => 'value', 2 => 'value', 10 => 'value'; say %hash.sort(0 - *.key.Int)
camelia rakudo-moar 2140c9: OUTPUT«(10 => value 2 => value 1 => value)␤»
timotimo m: say +(:1foo)
camelia rakudo-moar 2140c9: OUTPUT«Cannot resolve caller Numeric(Pair: ); none of these signatures match:␤ (Mu:U \v: *%_)␤ in block <unit> at <tmp> line 1␤␤»
21:33 shmibs joined
kalkin- I thought first -* & +* is some special form of whatever 21:33
brokenchicken nope
Just infix:<-> / infix:<+>
err
prefix:<-> / prefix:<+> 21:34
kalkin- prefix?
right
21:34 lmmx left
SmokeMachine m: class C {method test {}}; role R {method test {...}; method C { C but R}}; class R does R {method test {...}; method C { C but R }}; R.C ~~ C 21:37
camelia rakudo-moar 2140c9: OUTPUT«5===SORRY!5=== Error while compiling <tmp>␤Redeclaration of symbol 'R'␤at <tmp>:1␤------> 3.}; method C { C but R}}; class R does R7⏏5 {method test {...}; method C { C but R ␤»
21:40 shmibs left
SmokeMachine When you new() a role couldn't it, when it creates the class, implement the methods required by the role? It could be implemented with ... 21:41
lizmat when Perl 6 becomes sentient and telepathic, maybe ? 21:42
SmokeMachine That would be the best solution for me, but if it could be done, it could at least give a different error... like: Roles that requires methods cannot "be transformed" into class 21:43
timotimo you put ... into the role in order to make it explode when no code is provided
like, explode immediately
rather than having to wait for runtime to hit that code path
gfldex i wonder if ★ as an alias for the Whatever-* could improve readability 21:45
timotimo i could see that
it's potentially enough to just constant that
brokenchicken m: constant \term:<★> = Whatever; my %hash = 1 => 'value', 2 => 'value', 10 => 'value'; say %hash.sort(+★.key) 21:46
camelia rakudo-moar 2140c9: OUTPUT«No such method 'key' for invocant of type 'Whatever'␤ in block <unit> at <tmp> line 1␤␤»
timotimo ah
apparently not
sadface
brokenchicken
.oO( don't improve readability in that one much either )
gfldex in cases like ★*★ 21:47
or the other way around
timotimo well, you can use multiplication-cross for the multiplication case of *
that makes it more readable, too 21:48
gfldex good point
brokenchicken m: role R {method day {...}; method ^pun($) { say "sod off, bruh"; }; method Date(R:U:) {Date but R}; method meow {} }; R.meow
camelia rakudo-moar 2140c9: OUTPUT«Potential difficulties:␤ Useless declaration of a has-scoped method in multi (did you mean 'my method pun'?)␤ at <tmp>:1␤ ------> 3role R {method day {...}; method7⏏5 ^pun($) { say "sod off, bruh"; }; metho␤Method 'day' must be imple…»
brokenchicken
.oO( in multi?? )
21:49
ufobat how do i check if $foo is a Bool? I think Bool is an enum so $foo ~~ Numeric is true as well
brokenchicken ufobat: $foo ~~ Bool
ufobat m: my $t = True; say so $foo ~~ Bool
camelia rakudo-moar 2140c9: OUTPUT«5===SORRY!5=== Error while compiling <tmp>␤Variable '$foo' is not declared␤at <tmp>:1␤------> 3my $t = True; say so 7⏏5$foo ~~ Bool␤»
gfldex ufobat: see docs.perl6.org/language/typesystem#Metaclass 21:50
ufobat m: my $t = True; say so $t ~~ Bool
camelia rakudo-moar 2140c9: OUTPUT«True␤»
brokenchicken gfldex: what's wrong with ~~ Bool?
ufobat m: my $t = True; say so $t ~~ Bool 21:51
camelia rakudo-moar 2140c9: OUTPUT«True␤»
ufobat oups,
SmokeMachine brokenchicken: what's ^pun?
brokenchicken SmokeMachine: it puns the role
ufobat sorry, i'd need a False for this check
brokenchicken m: role R { method day {...}}.^pun
camelia rakudo-moar 2140c9: OUTPUT«Method 'day' must be implemented by R because it is required by roles: R.␤ in any compose_method_table at gen/moar/Metamodel.nqp line 2832␤ in any apply at gen/moar/Metamodel.nqp line 2843␤ in any compose at gen/moar/Metamodel.nqp line 3015␤ in…»
brokenchicken ufobat: False what?
SmokeMachine What means pun?
ufobat my $t could either be a Numeric, String or Bool 21:52
brokenchicken SmokeMachine: to use a role as a class
ufobat: ok
SmokeMachine brokenchicken: thanks!
ufobat so my $boolean ~~ Numeric is "true" but in fact is is Bool in my $boolean 21:53
timotimo Bool is Int
brokenchicken ufobat: !~~ is the negative of ~~
ufobat: but you're also missing that Numeric can be a Stringy too
m: dd [ $_ ~~ Numeric, $_ ~~ Str ] given <42> 21:54
camelia rakudo-moar 2140c9: OUTPUT«[Bool::True, Bool::True]␤»
21:54 Cabanossi left
ufobat hm 21:54
21:55 Cabanossi joined
brokenchicken m: $_ ~~ Numeric and $_ !~~ Stringy and $_ !~~ Bool and say "Just a plain 'ol Numeric" given 42 21:55
camelia rakudo-moar 2140c9: OUTPUT«Just a plain 'ol Numeric␤»
brokenchicken m: $_ ~~ Numeric and $_ !~~ Stringy and $_ !~~ Bool and say "Just a plain 'ol Numeric" given <42>
camelia ( no output )
brokenchicken m: $_ ~~ Numeric and $_ !~~ Stringy and $_ !~~ Bool and say "Just a plain 'ol Numeric" given True
camelia ( no output )
kalkin- I had a look at Dist::Zilla as far as I understand it has some phases it goes through and according to phases it executes some roles. AFAIK you could (dunno if it's implemented) only run in parallel the Plugins of the same phase, right? I'm asking because I need to rework the Ddt::Template code want to make Ddt concurrent, but implementing it similar to Dist::Zilla would also enforce the same concurrency limitation. Or did I misunderstood the
plugin system?
s/some roles/some plugins/ 21:56
ufobat brokenchicken, thats it for "numbers"
what would it be for "plain Bool"?
brokenchicken :(
ufobat: ~~ Bool, bruh
ufobat oh damn 21:57
Hotkeys_ is there an easy way I can whitespace split a string that includes lone combining chars without going through blob/buf or something like that?
m: my $s = "_x ̽"; $s.say; $s.comb(/\S+/).say #for example
camelia rakudo-moar 2140c9: OUTPUT«_x ̽␤(_x)␤»
ufobat its to late for me already, got your hint now!
tyvm!
ugexe i would doubt it does anything in parallel because you lose all reproduceability
brokenchicken kalkin-: I think #perl may know the answer better... BTW: Dist::Zilla is a monster...
kalkin- brokenchicken: right good idea, will try that
ugexe oh hey this time plugin X ran before plugin Y and changed the outcome
brokenchicken heh 21:58
m: my $s = "_x ̽"; $s.say; $s.words.say
camelia rakudo-moar 2140c9: OUTPUT«_x ̽␤(_x)␤»
ugexe you can do things like this in parallel if you understand the dependency graph of all the tasks and can break it down properly
kalkin- ugexe: right, i thought first about hardcoding in the Plugin A that it can only run if Plugin B is finished, but I'm not sure if this isn't flexible enough
brokenchicken Hotkeys_: what's the desired output? 21:59
ugexe so now you understand why i said before that plugins need to be aware of what else is going to run in its build process
Hotkeys_ ("_x", "ˣ")
ugexe otherwise you can do what zef/cur does and use a linked list and you put them in order however you want 22:00
brokenchicken Hotkeys_: I guess not...
Hotkeys_ right now it seems to see the combining char composed onto the space and therefore treats it as part of the whitespace
brokenchicken m: say x ̽".chars
camelia rakudo-moar 2140c9: OUTPUT«5===SORRY!5=== Error while compiling <tmp>␤Unable to parse expression in double quotes; couldn't find final '"' ␤at <tmp>:1␤------> 3say x ̽".chars7⏏5<EOL>␤ expecting any of:␤ argument list␤ double quotes␤ t…»
brokenchicken m: say"x ̽".chars
camelia rakudo-moar 2140c9: OUTPUT«5===SORRY!5===␤Argument to "say" seems to be malformed␤at <tmp>:1␤------> 3say7⏏5"x ̽".chars␤Two terms in a row␤at <tmp>:1␤------> 3say7⏏5"x ̽".chars␤ expecting any of:␤ infix␤ infix stopper␤ st…»
brokenchicken man this stuff really tore up my terminal :( 22:01
m: " ̽".chars.say
camelia rakudo-moar 2140c9: OUTPUT«1␤»
brokenchicken That's what I meant. It's part of the space and gets tossed along with it
kalkin- ugexe: last time we spoke about it you mentioned some node.js build stuff? I can't remember the name of it
brokenchicken Oh
brokenchicken got an idea 22:02
Hotkeys_ here's a thing for easy pastage :P utf8.new(95,120,32,204,189)
22:02 dugword joined
Hotkeys_ Yeah I know it treats it like that I was just wondering if there was a way to have it not do that 22:02
Without converting to a buf and then back again
brokenchicken m: my $s = "_x ̽"; $s.split(/[(\s) {$0.chars == $0.codes}]+/).say
camelia rakudo-moar 2140c9: OUTPUT«(_x )␤»
brokenchicken m: my $s = "_x ̽"; $s.split(/[(\s) {$0.chars == $0.codes}]+/).elems.say
camelia rakudo-moar 2140c9: OUTPUT«2␤»
brokenchicken hmmmm 22:03
kalkin- hmm I also could make Phases scoped to files. So plugin B waits for any *.pm class to be gathered so it can add instantly a license header to it
brokenchicken m: my $s = "_x ̽"; $s.split(/[(\s) {$0.chars == $0.codes}]+/).[1].uninames.say
camelia rakudo-moar 2140c9: OUTPUT«()␤»
kalkin- this might allow more concurrency
brokenchicken Oh, right, that's just the empty spot :(
maybe samcv would have a better idea 22:04
samcv what are you trying to do 22:05
brokenchicken samcv: split "_x ̽" on whitespace, to result in "_, "x ̽" 22:06
uhhh
for _x to be one item and for the combining thing the second item
Hotkeys_ result in ("_x", "ˣ") 22:07
brokenchicken m: say "ˣ".uniprops
camelia rakudo-moar 2140c9: OUTPUT«(Lm)␤»
thundergnat m: my $s = "_x ̽"; say $s; .say for $s.NFD;
camelia rakudo-moar 2140c9: OUTPUT«_x ̽␤95␤120␤32␤829␤»
thundergnat m: my $s = "_x ̽"; say $s; .chr.say for $s.NFD;
camelia rakudo-moar 2140c9: OUTPUT«_x ̽␤_␤x␤ ␤̽␤»
samcv mabye my font rendering is tricking me? uhm
22:07 rindolf joined
samcv let me change fonts 22:07
Hotkeys_ given that it's a lone combining char, it'll attach to space and quotes 22:08
so yeah probably tricks
samcv m: "_x ̽".uninames.say
camelia rakudo-moar 2140c9: OUTPUT«(LOW LINE LATIN SMALL LETTER X SPACE COMBINING X ABOVE)␤»
samcv m: "_x ̽".uninames.perl.say
camelia rakudo-moar 2140c9: OUTPUT«("LOW LINE", "LATIN SMALL LETTER X", "SPACE", "COMBINING X ABOVE").Seq␤»
samcv m: "_x ̽".uniprops('GCB').perl.say
camelia rakudo-moar 2140c9: OUTPUT«("Other", "Other", "Other", "Extend").Seq␤»
samcv ok
now i can see what's going on ;) 22:09
also you shouldn't have a combiing x above after a space
tbh but. that's not exactly the question i guess
m: "_x ̽".chars.say
camelia rakudo-moar 2140c9: OUTPUT«3␤»
samcv so you want to split it into 4 characters? 22:10
err or split extending characters?
Hotkeys_ Ideally I want to split it by the whitespace
but right now whitespace is including the combiner
samcv ok
brokenchicken m: my $s = "_x ̽"; $s.NFD.map({ .chr.uniprop('White_Space') ?? 10 !! $_ })».chr.join.words.[1].uninames.say 22:11
camelia rakudo-moar 2140c9: OUTPUT«(COMBINING X ABOVE)␤»
brokenchicken m: my $s = "_x ̽"; $s.NFD.map({ .chr.uniprop('White_Space') ?? 10 !! $_ })».chr.join.words.[0].uninames.say
camelia rakudo-moar 2140c9: OUTPUT«(LOW LINE LATIN SMALL LETTER X)␤»
samcv ok 22:12
m: "_x ̽".split(/\s/, :includemark).perl.say
camelia rakudo-moar 2140c9: OUTPUT«("_x", "")␤»
samcv hm
m: "_x ̽".split(/\s/, :ignoremark).perl.say
camelia rakudo-moar 2140c9: OUTPUT«("_x", "")␤»
samcv m: "_x ̽".split(/\s/, :ignoremark).».uninames.perl.say
camelia rakudo-moar 2140c9: OUTPUT«(("LOW LINE", "LATIN SMALL LETTER X").Seq, ().Seq)␤»
timotimo Str will vehemently prevent you from splitting a combiner from its letter
you'll need .NFD if you want it another way
samcv yeah
well doesn't have to be NFD 22:13
NFC would work too
timotimo but only in this special case :)
samcv well. special? i mean the whole question is regarding a degenerate attached to a space
that seems the exact case of what's going on atm 22:14
timotimo ok
i didn't pay enough attention
samcv where you have a degenerate after a space, so it attaches not to anything it should.
np :)
we would not go against unicode spec if we didn't allow you to combine marks onto spaces 22:15
that may be a decent thing to do
i have an rt about this exact thing. let me find it
timotimo hm
samcv unicode basically says you can handle degenerates however you want as long (for the most part)
Hotkeys_ it does seem strange for combiners to attach to spaces 22:16
samcv yeah that's why it's called a degenerate
so we could not break there. I would be ok with that and could change that on MVM
rt.perl.org/Ticket/Display.html?id=130384 here's the RT
Hotkeys_ they also attach to quotes so it's impossible to actually enter a string containing a lone combiner
samcv heh
Hotkeys_ :P
samcv yep
see rt :P
Hotkeys_ ah 22:17
nice
22:17 art_ left
samcv the space case is a much simpler uhm easier way to handle degenerates. but then other than spaces what do you not break at? that is the question 22:18
there's a proposal to make an invisible letter unicode.org/review/pr-41-invisible.pdf part of unicode 22:19
and you can attach marks onto it and be all in the clear
Hotkeys_ I've seen that and like that
samcv but space seems like a simple case we could easily just change it on moarvm and not have to think too hard since there aren't any counter cases 22:20
for making it not attach to punctuation characters I would have to do more research
22:20 Hotkeys_ is now known as Hotkeys 22:23 cdg_ joined, cdg__ joined 22:25 BenGoldberg joined
samcv Hotkeys, i am going to see if i can add that into MVM, to not break on spaces 22:25
if it's an extend
Hotkeys ok cool
22:26 cdg left 22:27 cdg_ left
samcv should be an easy fix at least for this case 22:27
just gotta make sure it passes all spectests
which it should. but gotta double check ;)
wait since when did we pass all the graphemeclusterbreak.t tests? 22:30
timotimo oops?
samcv did somebody remove things on accident
heh
i'll just regen it 22:32
22:32 raiph left
samcv err maybe it was me idk. hold on gotta check 22:33
or maybe we are passing all tests and i'm just that good ;)
22:33 raiph joined
TEttinger samcv: why stop at invisible letters, we need invisible numbers 22:34
samcv err maybe i was running the wrong test. heh
22:35 cdg__ left
TEttinger invsible negative-width whitespace characters 22:35
like \r on some setups, heh 22:36
samcv negative width?
is that what the proposal says?
TEttinger why not
no
22:37 RabidGravy left
TEttinger it could in theory be useful! 22:37
overdraw was used in early APL
samcv oh negative width chars? 22:47
but… that's not plaintext tho
DrForr Nod, quad was [ overprinted with ].
samcv unicode would never allow it
heh ;)
SmokeMachine I'm not changing anything, I'm just studying... but if here: github.com/rakudo/rakudo/blob/nom/...ng.nqp#L36 22:48
22:48 lmmx joined
SmokeMachine I loop on the role methods greping the .yada and .add_method on the created type... 22:49
Should it auto implemented the role's required modules on punning? 22:50
s/role methods/role's methods/ 22:51
Would that work? 22:52
22:55 BenGoldberg left 22:57 itcharlie1 joined
samcv Hotkeys, have a fix. gotta build nqp and rakudo then run spectest. if it passes then we should be good 22:59
Hotkeys love you platonically 23:00
samcv np 23:01
m: say "\c[BELL]" 23:06
camelia rakudo-moar 2140c9: OUTPUT«🔔␤»
samcv yey :)
u: U+7
unicodable6 samcv, U+0007 BELL [Cc] (control character)
samcv hmm AlexDaniel unicodable6 seems to have the old info 23:07
u: bell
unicodable6 samcv, U+0007 BELL [Cc] (control character)
samcv, U+237E BELL SYMBOL [So] (⍾)
samcv, gist.github.com/d37370f64f576f3c7a...4044318b04
AlexDaniel u: { $_ == 7 }
unicodable6 AlexDaniel, U+0007 BELL [Cc] (control character)
AlexDaniel what's the right answer?
ah right… 23:08
I see…
samcv u: { .uniprop('White_Space') } 23:09
AlexDaniel hides
samcv u: 0x7.uniname.say
m: 0x7.uniname.say
camelia rakudo-moar 2140c9: OUTPUT«<control-0007>␤»
unicodable6 samcv, U+0009 CHARACTER TABULATION [Cc] (control character)
samcv, U+000A LINE FEED (LF) [Cc] (control character)
samcv, U+0078 LATIN SMALL LETTER X [Ll] (x)
samcv, U+0030 DIGIT ZERO [Nd] (0)
samcv, gist.github.com/ee088a584f227282b7...5f5d907be9
samcv whoops
23:10 shmibs joined 23:11 evalable6 left, unicodable6 left, benchable6 left, bisectable6 left, committable6 left, statisfiable6 left 23:12 committable6 joined, unicodable6 joined, ChanServ sets mode: +v committable6, ChanServ sets mode: +v unicodable6, bisectable6 joined, evalable6 joined, ChanServ sets mode: +v bisectable6, benchable6 joined, ChanServ sets mode: +v benchable6, statisfiable6 joined
AlexDaniel u: 0x7 23:12
unicodable6 AlexDaniel, U+0007 <control-0007> [Cc] (control character)
AlexDaniel samcv: like that? :) 23:13
samcv yea
23:17 kalkin- left 23:19 Gasher_ left
TEttinger uh 23:20
how would you use \c[] to produce the audible bell char? 23:21
if BELL is an emoji
m: say "\c[<control-0007>]"
camelia rakudo-moar 2140c9: OUTPUT«5===SORRY!5=== Error while compiling <tmp>␤Unrecognized \c character␤at <tmp>:1␤------> 3say "\c[7⏏5<control-0007>]"␤ expecting any of:␤ argument list␤ double quotes␤ term␤»
geekosaur m: "\c[BEL]".uniname.say
camelia rakudo-moar 2140c9: OUTPUT«<control-0007>␤»
TEttinger oh man 23:22
that's silly, but it works
samcv there's \c[ALERT] too 23:23
geekosaur kinda expects that anyway since the ASCII control character names are all 2 or 3 characters
BEL, LF, SOH, etc.
AlexDaniel m: “\c[ALERT]”.ord.say
camelia rakudo-moar 2140c9: OUTPUT«7␤»
AlexDaniel alert is fine
samcv AlexDaniel, you should see github.com/MoarVM/MoarVM/commit/81...49264335bf
see my commit description. it explains all the user facing changes
AlexDaniel me? 23:24
samcv idk if you haven't seen it
then you should
or anybody wanting to know what the recent changes were to character naming and being able to access them
oh god. at the end XD # Please enter the commit message for your changes. Lines starting
hahaha
oh well.
damn you git 23:25
AlexDaniel hah
I often include some lines starting with # and then wonder why they are not in my commit message
samcv hah
m: say "\c[ZWJ]".uniname 23:26
camelia rakudo-moar 2140c9: OUTPUT«ZERO WIDTH JOINER␤»
23:26 mr_ron left
samcv can do that too now :) 23:26
AlexDaniel right!
samcv all aliases here: ftp://ftp.unicode.org/Public/UCD/latest/ucd/NameAliases.txt
also Hotkeys adding space may be more complicated than I expected 23:27
looks like unicode's grapheme break test includes that and says not to break there
but. digging deeper it is more complex
AlexDaniel m: say “🙌\c[ZWJ]♂”
camelia rakudo-moar 2140c9: OUTPUT«🙌‍♂␤»
Hotkeys spooky
AlexDaniel no, it's not that one
m: say “🤦\c[ZWJ]♂” 23:28
camelia rakudo-moar 2140c9: OUTPUT«🤦‍♂␤»
AlexDaniel .in 2y Check if Facepalm + ZWJ + Male sign finally renders a male version 23:29
yoleaux AlexDaniel: I'll remind you on 15 Jan 2019 23:29Z
samcv m: say "\c[man astronaut: light skin tone]"
camelia rakudo-moar 2140c9: OUTPUT«👨🏻‍🚀␤»
AlexDaniel samcv: wait… how does that work?
samcv because I added it :)
to MVM :)
AlexDaniel so what's the syntax exactly? 23:30
samcv github.com/MoarVM/MoarVM/pull/492
23:30 BenGoldberg joined
samcv it's anything that unicode says 23:30
23:30 BenGoldberg left
samcv this unicode.org/Public/emoji/4.0/emoji-sequences.txt 23:30
and this unicode.org/Public/emoji/4.0/emoji-...uences.txt
AlexDaniel m: say “\c[FACE PALM: MALE SIGN]”
camelia rakudo-moar 2140c9: OUTPUT«5===SORRY!5=== Error while compiling <tmp>␤Unrecognized character name FACE PALM: MALE SIGN␤at <tmp>:1␤------> 3say “\c[FACE PALM: MALE SIGN7⏏5]”␤»
samcv has to be lower case atm 23:31
AlexDaniel m: say “\c[face palm: male sign]”
camelia rakudo-moar 2140c9: OUTPUT«5===SORRY!5=== Error while compiling <tmp>␤Unrecognized character name face palm: male sign␤at <tmp>:1␤------> 3say “\c[face palm: male sign7⏏5]”␤»
23:31 telex left
samcv also. commas denote seperate characters AlexDaniel 23:31
use commas if you are specifying the exact characters. use the names listed if it's a special sequence
i still need to make it case insensiteve and remove commas from like. couple with heart: woman, man
you can't do "\c[couple with heart: woman, man]" because it thinks you are specfying 'couple with heart:' + 'woman' + 'man' 23:32
AlexDaniel ahhh I see
m: say “\c[man facepalming]”
camelia rakudo-moar 2140c9: OUTPUT«🤦‍♂️␤»
samcv so need to fix that. but otherwise all the emoji sequences and zwj ones are added
23:32 telex joined
samcv :D 23:32
m: say "\c[United States]"
camelia rakudo-moar 2140c9: OUTPUT«🇺🇸␤»
AlexDaniel m: dd “\c[man facepalming]”.comb.uninames
camelia rakudo-moar 2140c9: OUTPUT«Cannot resolve caller uninames(Seq); none of these signatures match:␤ (Str:D $str)␤ in block <unit> at <tmp> line 1␤␤»
AlexDaniel m: dd “\c[man facepalming]”.uninames 23:33
camelia rakudo-moar 2140c9: OUTPUT«("FACE PALM", "ZERO WIDTH JOINER", "MALE SIGN", "VARIATION SELECTOR-16").Seq␤»
AlexDaniel why variation selector?
samcv that is variation selector for emoji presentation
there is a variation selector for text presentation too
but unicode has those in their list so, that's why it gives you that
AlexDaniel oh, otherwise it will render as separate characters?
samcv well. otherwise it's not forced into any presentation i think
AlexDaniel ok 23:34
samcv not sure how computers handle it or if they even do, or phones for that matter. not sure
still need to add the non emoji sequences too
from here www.unicode.org/Public/9.0.0/ucd/Na...uences.txt
AlexDaniel renders like shit here, which is why I asked yoleaux to remind me in two years…
samcv heh 23:35
also the alias names also include corrections to incorrect unicode names, so it's pretty useful to support those
brokenchicken m: say “\c[man facepalming]”
camelia rakudo-moar 2140c9: OUTPUT«🤦‍♂️␤»
samcv u: U+FE18
unicodable6 samcv, U+FE18 PRESENTATION FORM FOR VERTICAL RIGHT WHITE LENTICULAR BRAKCET [Pe] (︘)
samcv see how that's misspelled :P 23:36
brokenchicken Hm, even my emoji one set on Windows can't render the facepalming
AlexDaniel yea-yea
brokenchicken Cool!
samcv but names never change! woo!
but i guess it's okay since aliases exist
AlexDaniel yea
skin tones render fine here, genders not really 23:37
samcv not sure if we want a function to get us all the unicode aliases or how that would even look. since things can have many aliases
23:37 fatguy left
AlexDaniel most emojis I see have a woman 23:37
samcv you're on what os?
AlexDaniel Debian
unstable
brokenchicken m: say “\c[woman facepalming]” 23:38
camelia rakudo-moar 2140c9: OUTPUT«🤦‍♀️␤»
AlexDaniel have no idea what font that is
brokenchicken m: say “\c[baby facepalming]”
camelia rakudo-moar 2140c9: OUTPUT«5===SORRY!5=== Error while compiling <tmp>␤Unrecognized character name baby facepalming␤at <tmp>:1␤------> 3say “\c[baby facepalming7⏏5]”␤»
brokenchicken
.oO( ISAGN )
samcv gonna try installing another font
AlexDaniel the current font I'm using is rather stupid to be honest. I'm not sure who had this great idea to draw gendered emojis 23:40
if there's no gender sign ZWJ-ed to it, please give me a smiley head…
brokenchicken m: say “\c[cat facepalming]” 23:42
camelia rakudo-moar 2140c9: OUTPUT«5===SORRY!5=== Error while compiling <tmp>␤Unrecognized character name cat facepalming␤at <tmp>:1␤------> 3say “\c[cat facepalming7⏏5]”␤»
brokenchicken :(
m: say “\c[cat crying]”
camelia rakudo-moar 2140c9: OUTPUT«5===SORRY!5=== Error while compiling <tmp>␤Unrecognized character name cat crying␤at <tmp>:1␤------> 3say “\c[cat crying7⏏5]”␤»
brokenchicken m: say “\c[crying catface]”
camelia rakudo-moar 2140c9: OUTPUT«5===SORRY!5=== Error while compiling <tmp>␤Unrecognized character name crying catface␤at <tmp>:1␤------> 3say “\c[crying catface7⏏5]”␤»
23:45 BenGoldberg joined
AlexDaniel m: say “\c[Libya]” # dammit, I was hoping for a green circle 23:45
camelia rakudo-moar 2140c9: OUTPUT«🇱🇾␤»
samcv lol 23:46
i installed another font antd since there's no colors, things are even harder to tell what they are then before :P 23:48
23:49 girafe left 23:55 lukaramu left
BenGoldberg m: '🍏'.uninames.say 23:55
camelia rakudo-moar 2140c9: OUTPUT«(GREEN APPLE)␤»
BenGoldberg u: m:i/green/ 23:56
unicodable6 BenGoldberg, U+006D LATIN SMALL LETTER M [Ll] (m)
BenGoldberg, U+003A COLON [Po] (:)
BenGoldberg, gist.github.com/1ee579c4552ed36f02...05f1cf6c02
AlexDaniel just u: green
BenGoldberg u: green
unicodable6 BenGoldberg, U+1F005 MAHJONG TILE GREEN DRAGON [So] (🀅)
BenGoldberg, U+1F332 EVERGREEN TREE [So] (🌲)
BenGoldberg, gist.github.com/b2d24cbda61f4db8fc...caf1ee698c
brokenchicken even mahjong tiles are in it?
Didn't even know people knew of that game heh. 23:57
23:57 pmurias left
brokenchicken had a time as a teen with laptop that was only good for playing mahjong and nethack... Ah.. memories 23:57
AlexDaniel u: TILE
unicodable6 AlexDaniel, U+22AA TRIPLE VERTICAL BAR RIGHT TURNSTILE [Sm] (⊪)
AlexDaniel, U+22AB DOUBLE VERTICAL BAR DOUBLE RIGHT TURNSTILE [Sm] (⊫)
AlexDaniel, gist.github.com/7e2e0a7adb63962ae4...a831171ae5 23:58
AlexDaniel pfft. Domino tiles vertical *and* horizontal
brokenchicken
.oO( would be nice to know the total chars in the gist... )
AlexDaniel brokenchicken: github.com/perl6/whateverable/issues/88
BenGoldberg . o O (03⏺0)
brokenchicken AlexDaniel: "testneeded"? So it's done already or what's happening? 23:59
AlexDaniel brokenchicken: don't look at that label yet
if it's open then it's not done