Perl 6 - the future is here, just unevenly distributed

IRC log for #perl6, 2017-01-15

Perl 6 | Reference Documentation | Rakudo

| Channels | #perl6 index | Today | | Search | Google Search | Plain-Text | summary

All times shown according to UTC.

Time Nick Message
00:06 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 jdv79 also taking this class out of the app seems to fix it. so having a little trouble golfign it
00:19 bjz joined #perl6
00:20 jdv79 m: say "foo"
00:20 camelia rakudo-moar b7cd77: OUTPUT«foo␤»
00:21 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:26 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::…»
00:26 timotimo :(
00:26 shmibs joined #perl6
00:26 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:27 jdv79 so static and dynamic.  weird.
00:35 Actualeyes joined #perl6
00:37 jdv79 https://gist.github.com/anonymous/46bbf63a822192058a9ac9d06d8c4fb5
00:37 jdv79 nine_: ^^^ ?
00:37 jdv79 i don't get it
00:38 jdv79 i guess i'll bug it. seems wrong.
00:49 aborazmeh joined #perl6
00:49 aborazmeh joined #perl6
00:53 kyan joined #perl6
01:21 foo__ joined #perl6
01:23 foo__ left #perl6
01:24 shun__ joined #perl6
01:26 shun__ left #perl6
01:28 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」␤»
01:29 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 AlexDaniel mr_ron: | does longest token matching, so this result is expected
01:33 AlexDaniel and || doesn't
01:33 mr_ron I am mixing ltm and lexical order (there are both)
01:35 AlexDaniel oh.
01:35 Ben_Goldberg joined #perl6
01:36 felher joined #perl6
01:37 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 #perl6
01:43 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」␤»
01:43 AlexDaniel m: my regex ft { ‘00’ || ‘422’ }; my regex ft3 { <ft> | ‘42’ }; say ‘422’ ~~ /<ft3>/
01:43 camelia rakudo-moar b7cd77: OUTPUT«「42」␤ ft3 => 「42」␤»
01:43 AlexDaniel golfed a little bit
01:44 AlexDaniel m: say ‘422’ ~~ / [ ‘00’ | ‘422’ ] | ‘42’ /
01:44 camelia rakudo-moar b7cd77: OUTPUT«「422」␤»
01:44 AlexDaniel m: say ‘422’ ~~ / [ ‘00’ || ‘422’ ] | ‘42’ /
01:44 camelia rakudo-moar b7cd77: OUTPUT«「42」␤»
01:45 AlexDaniel mr_ron: ok, I think this is as short as it can get
01:45 pecastro joined #perl6
02:00 bjz_ joined #perl6
02:14 mr_ron AlexDaniel: stepped out for a bit - thanks
02:16 labster joined #perl6
02:17 bjz joined #perl6
02:28 kalkin- joined #perl6
02:42 lmmx joined #perl6
02:46 AlexDaniel mr_ron: I have a feeling that this behavior is actually expected, and perhaps someone will point it out eventually
02:46 AlexDaniel mr_ron: but so far looks like a bug to me…
02:46 AlexDaniel so yes, it would be great to have a ticket
02:46 mr_ron will work on ticket tomorrow morning - thanks
02:47 ilbot3 joined #perl6
02:47 Topic for #perl6 is now »ö« Welcome to Perl 6! | https://perl6.org/ | evalbot usage: 'p6: say 3;' or rakudo:,  or /msg camelia p6: ... | irclog: http://irc.perl6.org or http://colabti.org/irclogger/irclogger_logs/perl6 | UTF-8 is our friend!
03:03 dugword joined #perl6
03:21 curt_ joined #perl6
03:30 SmokeMachine Is it possible to have 2 versions of the same module on a distribution?
03:55 Vynce joined #perl6
03:58 TEttinger joined #perl6
04:07 Actualeyes joined #perl6
04:08 Geth ecosystem: FCO++ created pull request #287: Adding DateTime::Extended to the ecosystem
04:08 Geth ecosystem: review: https://github.com/perl6/ecosystem/pull/287
04:15 faraco joined #perl6
04:27 dugword joined #perl6
04:59 cibs joined #perl6
05:37 zacts joined #perl6
05:41 Cabanossi joined #perl6
05:48 CIAvash joined #perl6
06:21 faraco joined #perl6
06:23 bjz joined #perl6
06:39 dugword joined #perl6
06:48 bjz_ joined #perl6
07:24 dugword joined #perl6
07:24 bjz joined #perl6
07:48 Geth ecosystem: 82121abe91 | (Fernando Correa de Oliveira)++ | META.list
07:48 Geth ecosystem: Adding DateTime::Extended to the ecosystem
07:48 Geth ecosystem: review: https://github.com/perl6/ecosystem/commit/82121abe91
08:05 cibs joined #perl6
08:07 domidumont joined #perl6
08:10 FROGGS joined #perl6
08:13 domidumont joined #perl6
08:30 dugword joined #perl6
08:35 RabidGravy joined #perl6
08:44 Alikzus joined #perl6
09:20 samcv yes SmokeMachine well at least we should be able to do that now
09:20 samcv since the recentish changes
09:24 brokenchicken you can load two; but can you have the two in the same distro? Doesn't version get read from META file?
09:30 rindolf joined #perl6
09:30 wamba joined #perl6
09:35 trnh joined #perl6
09:41 Geth ecosystem: faraco++ created pull request #288: Added WebService::Gitter to ecosystem
09:41 Geth ecosystem: review: https://github.com/perl6/ecosystem/pull/288
09:45 espadrine joined #perl6
09:49 samcv hm
09:50 samcv would be really nice if we could have special int key hashes
09:50 samcv 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
09:51 samcv and don't have to .sort({$^a.Int cmp $^b.Int})
09:52 Tonik joined #perl6
09:55 brokenchicken m: my %h{Int}; %h = 42 => "meow"; say %h.keys[0].^name
09:55 camelia rakudo-moar 2140c9: OUTPUT«Int␤»
09:55 brokenchicken m: my %h{int}; my int $x = 42; %h = $x => "meow"; say %h.keys[0].^name
09:55 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␤␤»
09:56 brokenchicken :(
09:56 brokenchicken m: my %h{int}; my int $x = 42; %h{$x} = "meow"; say %h.keys[0].^name
09:56 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␤␤»
09:56 brokenchicken m: my %h{int}; %h{my int $ = 42} = "meow"; say %h.keys[0].^name
09:56 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␤␤»
09:56 brokenchicken weird
09:57 brokenchicken wtf is up with "prhero"? Some bot?
09:57 brokenchicken "Repositories: 0; Stars: 1.6K"....
10:00 Geth ecosystem: b195f63a01 | faraco++ | META.list
10:00 Geth ecosystem: Added WebService::Gitter to ecosystem
10:00 Geth ecosystem:
10:00 Geth ecosystem: First release.
10:00 Geth ecosystem: review: https://github.com/perl6/ecosystem/commit/b195f63a01
10:00 Geth ecosystem: c1e6a55aba | (Juan Julián Merelo Guervós)++ | META.list
10:00 Geth ecosystem: Merge pull request #288 from faraco/master
10:00 Geth ecosystem:
10:00 Geth ecosystem: Added WebService::Gitter to ecosystem
10:00 Geth ecosystem: review: https://github.com/perl6/ecosystem/commit/c1e6a55aba
10:24 ChoHag joined #perl6
10:27 samcv yeah i noticed that too brokenchicken
10:27 samcv not sure about prhero but
10:27 samcv that int doesn't work. perl 6 just boxes it up
10:27 samcv i think even if you try and unbox
10:27 samcv m: my %h{int}; my int $x = 32; %h{$x} = 'test'
10:27 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␤␤»
10:28 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␤␤»
10:28 samcv yep
10:28 kalkin- I published my new module https://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
10:30 brokenchicken kalkin-: by name of the module, I'm guessing it's for programatically detecting/indicating module's lisense :)
10:30 brokenchicken m: use nqp; my %h{int}; my int $x = 32; %h{nqp::decont($x)} = 'test'
10:30 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␤␤»
10:30 samcv you used a circled letter C instead of a copyright symbol
10:30 samcv © <copyright circledletterc Ⓒ
10:30 kalkin- brokenchicken: not detecting. :)
10:30 kalkin- samcv: ohh, thanks
10:30 samcv np
10:31 kalkin- They look the same :-/
10:31 samcv wouldn't have pointed it out. but the module is a license handling one ;)
10:31 brokenchicken the latter looks like 3 times larger on my font
10:31 kalkin- samcv: yes of cours
10:31 kalkin- *e
10:31 samcv depends on the font, and the spacing is different
10:32 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 dugword joined #perl6
10:32 samcv usually copyright is not centered vertically
10:32 samcv but (C) is centered vertically
10:32 samcv the circled one
10:32 samcv copyright is higher up and usually smaller
10:32 kalkin- brokenchicken: you can use it to create tools for applying license to your source code
10:32 samcv ohhhhhhhhhhhhhh
10:32 brokenchicken kalkin-: but what does "applying license" even mean?
10:32 samcv you mean
10:32 kalkin- i.e. i have a mi6 fork which does generate all the needed license files and headers when generating a project
10:32 samcv adding headers?
10:33 samcv i had no clue what it did by reading it tbh tho
10:33 kalkin- That's what i expected :(
10:33 samcv except maybe it allows you to relicense other peoples work easily ;)
10:33 brokenchicken generating all the files and headers to me would be "adding a license" :)
10:33 samcv just relicense all code on your computer to your desired license ;)
10:33 samcv i like applying better
10:34 samcv well. i mean. being able to choose whatever license you want could have perks
10:34 samcv but would not be legal
10:34 kalkin- This library should be used by tools which create project skelletons
10:34 kalkin- is this a better summary?
10:36 brokenchicken Isn't there same-named module in Perl 5? Just use their desc
10:37 kalkin- Software::License - packages that provide templated software licenses ← This makes more sense
10:37 araujo joined #perl6
10:37 araujo joined #perl6
10:48 trnh joined #perl6
10:49 shayan_ joined #perl6
10:55 araujo joined #perl6
10:55 araujo joined #perl6
10:57 kalkin- brokenchicken & samcv thanks for the critique. I reworded the descriptions and did a PR to perl6/ecosystem
10:58 brokenchicken You did?
10:59 brokenchicken u lie
10:59 brokenchicken :}
10:59 kalkin- License::Software - provides templated software licenses
10:59 kalkin- brokenchicken: Reload page?
10:59 brokenchicken There's no PR
11:00 kalkin- huch
11:00 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:01 Geth ecosystem: kalkin++ created pull request #289: Add License-Software to ecosystem
11:01 Geth ecosystem: review: https://github.com/perl6/ecosystem/pull/289
11:01 kalkin- ahh!
11:01 Geth ecosystem: 99990b1073 | (Bahtiar Gadimov)++ | META.list
11:01 Geth ecosystem: Add License-Software to ecosystem (#289)
11:01 Geth ecosystem: review: https://github.com/perl6/ecosystem/commit/99990b1073
11:20 jsimonet joined #perl6
11:23 jmerelo joined #perl6
11:23 jmerelo hi all
11:23 jmerelo p6: say  3 ≠ 4
11:23 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…»
11:24 jmerelo p6:  6 ≲ 8
11:24 camelia rakudo-moar 2140c9: OUTPUT«5===SORRY!5=== Error while compiling <tmp>␤Confused␤at <tmp>:1␤------> 67⏏5 ≲ 8␤    expecting any of:␤        infix␤        infix stopper␤        statement end␤        statement modifier␤        statement modifier loop␤»
11:24 brokenchicken hi
11:25 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
11:26 brokenchicken There's the other side to "cool"... Bugs, slowness, and messy internals.
11:26 brokenchicken Try to find all the commits for U+2212 minus in core.
11:26 jmerelo but
11:27 jmerelo p6: say   2⁷
11:27 camelia rakudo-moar 2140c9: OUTPUT«128␤»
11:27 kalkin- when will be 2017.01 rakudo released?
11:27 kalkin- end of the month?
11:28 brokenchicken jmerelo: but..
11:28 brokenchicken m: constant $NQP_UR       = 'https://github.com/perl6/nqp';
11:28 camelia rakudo-moar 2140c9: ( no output )
11:28 brokenchicken ggrrr
11:28 brokenchicken Please hold while I rectify copy-paste issues on this dumb terminal.
11:29 brokenchicken m: say ⁶⁶
11:29 camelia rakudo-moar 2140c9: OUTPUT«46656␤»
11:29 brokenchicken jmerelo: ^ but
11:29 brokenchicken Oh, and I got one more
11:29 brokenchicken m: say my $i = 2; say $i++**2
11:29 camelia rakudo-moar 2140c9: OUTPUT«2␤4␤»
11:29 brokenchicken m: say my $i = 2; say $i++²
11:29 camelia rakudo-moar 2140c9: OUTPUT«2␤4␤»
11:30 brokenchicken Oh, that's not it
11:30 CIAvash jmerelo: http://irclog.perlgeek.de/perl6/2016-01-09#i_11859391
11:30 brokenchicken m: say my $i = 2; say ++$i**2
11:30 camelia rakudo-moar 2140c9: OUTPUT«2␤9␤»
11:30 brokenchicken m: say my $i = 2; say ++$i²
11:30 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␤»
11:30 brokenchicken jmerelo: ^ another one
11:30 jmerelo so you are saying that implementing that is difficult enough, and fraught with peril
11:30 brokenchicken jmerelo: the say ⁶⁶ isn't even a bug.
11:31 jmerelo so getting into other unicode operators would make the whole thing even more difficult
11:32 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 brokenchicken extra parsing.
11:33 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.
11:33 brokenchicken heh
11:34 brokenchicken kalkin-: yeah, I bet that's what people said when U+2212 was added.
11:34 kalkin- brokenchicken: :D i see
11:34 jmerelo @brokenchicken but cool examples on Twitter are cool ;-)
11:34 jmerelo But I see your point.
11:34 brokenchicken I doubt it's even fixed completely.
11:34 brokenchicken Yup
11:34 brokenchicken m: say sprintf '%-2.f', 42
11:34 camelia rakudo-moar 2140c9: OUTPUT«42␤»
11:35 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␤␤»
11:35 brokenchicken That's after I already fixed so many bugs with it, I lost count of how many of them we had
11:36 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).
11:37 brokenchicken 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:38 jmerelo I could try and do that, sure.
11:38 brokenchicken AlexDaniel had a gist with a whole ton of candidates.
11:39 kalkin- https://gist.github.com/AlexDaniel/c89bd2786f9b63f31e4c
11:39 brokenchicken Yeah, that's the one.
11:40 kalkin- I think we have this unicode debate once a month or so ☺
11:40 jmerelo I'd love the electric arrow
11:40 jmerelo Would vote for it to go first!
11:40 jmerelo The "Harry Potter" operators.
11:42 jmerelo @kalkin with outcome being? Will not do it in the foreseeable future?
11:43 kalkin- jmerelo: no outcome.
11:43 kalkin- 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
11:43 kalkin- this would probably uncover most bugs
11:44 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 jmerelo @kaling um, that's an idea.
11:45 samcv why electric one
11:45 samcv ≈ why not this then? electric doesn't look very much like the righ tone
11:45 samcv like uh ~~
11:45 samcv ≈ does though
11:45 notbenh joined #perl6
11:45 samcv but i mean that has a real life meaning so maybe not good either
11:45 jmerelo https://gist.github.com/AlexDaniel/c89bd2786f9b63f31e4c#-1
11:45 dotness joined #perl6
11:46 jmerelo I guess it just looks cook.
11:46 jmerelo cool, I mean.
11:46 samcv also regarding The problem is that both are not rendered very nicely by current fonts. ⩴ s also very wide.
11:46 jmerelo Probably that's a good reason too for not introducing them unless they have a pretty obvious and unambiguous meaning.
11:46 kalkin- samcv: well we could stop using monospaced fonts. there is no reason for using them, besides using vim on terminal :-/
11:46 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
11:47 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
11:47 samcv i mean
11:48 kalkin- AFAIK no terminals can cope with non monospaced fonts without getting broken
11:48 samcv how does that relate to perl 6 though?
11:48 samcv or is that just an aside. i mean
11:49 brokenchicken kalkin-: check it out:
11:49 brokenchicken m: constant &infix:<≠> = &infix:<!=>; say 2 != 5 != 5
11:49 camelia rakudo-moar 2140c9: OUTPUT«False␤»
11:49 brokenchicken m: constant &infix:<≠> = &infix:<!=>; say 2 ≠ 5 ≠ 5
11:49 camelia rakudo-moar 2140c9: OUTPUT«True␤»
11:49 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
11:49 samcv is there a way to edit with a non-monospaced font but still have things align right
11:49 samcv hm
11:49 samcv i disagree with that but
11:49 samcv that's my opinion
11:50 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
11:50 samcv uhm there's east asian width property
11:50 samcv mathematical symbols usually have Neutral value for that tho
11:51 samcv or you can use Fira Code ligatures
11:51 samcv and it magically looks right
11:51 samcv and is the right width. but that's not relevant except for visually looking at the code
11:52 kalkin- samcv: Are the Fira Code ligatures for long double arrow and double arrow different enough?
11:52 samcv uhm they're different widths
11:52 samcv they are the width of the ascii letters
11:52 samcv can use with terminal programs maybe too, but at least it works for atom with atom-language-perl6
11:53 samcv and i have it disable ligatures for quoted strings and comments and pod and stuff
11:53 samcv or anything else that is broken into multiple uhm, tokens for the syntax highlighting grammar
11:54 samcv 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 samcv yeah it is.
11:55 samcv i gotta head to bed. night all o/
11:55 kalkin- brokenchicken: nice!
11:55 kalkin- samcv: night
12:00 jmerelo good night
12:02 * kalkin- still dreams of having a terminal emulator where i can read manpages with proper ligatures for example for fi
12:02 kalkin- and different font sizes
12:02 kalkin- and a lot more
12:02 kalkin- Tex really spoiled me
12:08 masak yeah, wow
12:09 masak I could totally work with a TeX-based terminal emulator
12:09 masak (hi, #perl6)
12:10 fatguy joined #perl6
12:11 * moritz would hate to see "underfull hbox (badness 1000)" all the time :-)
12:17 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:18 brokenchicken star: use JSON::Tiny; my $e = from-json '{"foo":"bar"}'; sub ($json is rw) {}($e)
12:18 camelia star-m 2016.10: ( no output )
12:18 brokenchicken ... so wtf...
12:19 kalkin- Is it best practice to have the POD at the bottom of the file? Or is it just best practice for perl5?
12:20 * kalkin- is thinking about adding Pod::EOD to his mi6 fork
12:22 TimToady joined #perl6
12:22 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␤␤»
12:22 brokenchicken star: use JSON::Tiny; my $e = from-json '{"foo":"bar"}'; sub foo ($json is rw) {}; sub bar ($e is rw) { foo $e }($e)
12:22 camelia star-m 2016.10: ( no output )
12:22 * brokenchicken shakes head
12:26 kalkin- m: my Int $f .= new: 3 # how did this work again?
12:26 camelia rakudo-moar 2140c9: ( no output )
12:26 kalkin- m: my Int $f .= new: 3; say $f # how did this work again?
12:26 camelia rakudo-moar 2140c9: OUTPUT«3␤»
12:27 kalkin- hmm weird
12:27 kalkin- never mind
12:32 mr_ron joined #perl6
12:33 faraco joined #perl6
12:33 dugword joined #perl6
12:34 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
12:34 kalkin- retyping it here properly worked
12:51 Geth joined #perl6
12:55 iH2O joined #perl6
12:58 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
13:00 kalkin- ahh i can just assign the result to Hash.new
13:03 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
13:03 camelia rakudo-moar 2140c9: OUTPUT«Hash % = {:bar(31337)}␤»
13:04 SmokeMachine ?
13:05 SmokeMachine And on lib/ver1/A.pm6: class A:ver<1>
13:05 kalkin- brokenchicken: thanks
13:05 kalkin- SmokeMachine: no
13:05 kalkin- SmokeMachine: you can do A:ver<1> : "...", A:ver<2> :  "..."
13:06 infrabyte joined #perl6
13:06 kalkin- the key is your compunit and the value is the source providing it
13:07 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
13:07 kalkin- (for now)
13:08 brokenchicken it doesn't
13:08 kalkin- brokenchicken: it doesn't ignore them or it doesn't use them?
13:08 brokenchicken doesn't ignore them
13:08 brokenchicken m: use Test:auth<meows>
13:08 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…»
13:08 brokenchicken m: use Test:ver<70>
13:08 camelia rakudo-moar 2140c9: OUTPUT«===SORRY!===␤Cannot resolve caller Numeric(Version: ); none of these signatures match:␤    (Mu:U \v: *%_)␤»
13:08 brokenchicken :S
13:08 brokenchicken m: use Test:ver<6.e>
13:08 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:…»
13:08 kalkin- may be I misunderstood ugexe
13:08 brokenchicken m: use Test:ver<6.c>:auth<perl>
13:08 camelia rakudo-moar 2140c9: ( no output )
13:09 darutoko joined #perl6
13:09 iH2O left #perl6
13:09 brokenchicken kalkin-: it was probably about :ver and :auth declared in modules; and the dist uses META data instead of those IIRC
13:10 brokenchicken SmokeMachine: what exactly "doesn't work" mean?
13:10 kalkin- brokenchicken: yeah probably
13:10 brokenchicken A:ver<1> : "...", A:ver<2> :  "..." is invalid JSON, for one
13:11 SmokeMachine You mean with the "s?
13:11 infrabyte joined #perl6
13:13 SmokeMachine I have tried :"A:ver<1>": "lib/v1/A.pm6"
13:13 SmokeMachine And it couldn't find A:ver<1>... on a use...
13:16 azawawi joined #perl6
13:16 azawawi hi
13:17 azawawi Started working on GTK::Scintilla tests :)   # https://github.com/azawawi/perl6-gtk-scintilla/blob/master/t/02-basic.t
13:19 sammers hi perl6
13:30 RabidGravy azawawi, nice one
13:35 dugword joined #perl6
13:35 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 http://stackoverflow.com/a/37230217/1077672?
13:37 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
13:37 yoleaux thundergnat: I'll pass your message to samcv.
13:37 RabidGravy :)
13:38 thundergnat .tell raiph Thanks for the link. Almost exactly my question.
13:38 yoleaux thundergnat: I'll pass your message to raiph.
13:38 azawawi RabidGravy: been busy with https://github.com/azawawi/SwiftyZeroMQ :)
13:39 azawawi RabidGravy: and playing wow :)
13:39 * azawawi ducks
13:41 RabidGravy I am disconsolately looking at the Informix SDK example code trying to work out how to make DBDish::Informix
13:42 xinming_ joined #perl6
13:42 azawawi RabidGravy: share :)
13:45 ChoHag joined #perl6
13:46 RabidGravy I have only got as far as getting a working informix environment
13:49 azawawi RabidGravy: what do you think $editor.get-char-at (like the scintilla docs) but $editor.char-at (more Perl6ish)?
13:51 Gasher joined #perl6
13:51 RabidGravy I'd go with the latter as it's shorter :)
13:52 azawawi RabidGravy: cool thx
13:53 azawawi 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:54 cibs joined #perl6
13:56 vimal2012 joined #perl6
13:56 RabidGravy You shouldn't need it if you are going to assume that it's installed no
13:57 RabidGravy of course you may still want to check that it's present
13:58 lukaramu joined #perl6
14:03 zakharyas joined #perl6
14:06 curt_ joined #perl6
14:06 RabidGravy I am in a quandary whether to use the informix CLI API or the ESQL/C interface like DBD::Informix does
14:13 vimal2012 left #perl6
14:17 azawawi RabidGravy: thx
14:21 cdg joined #perl6
14:30 wamba joined #perl6
14:34 Geth ecosystem: kalkin++ created pull request #290: Add Ddt - Distribution Development Tool
14:34 Geth ecosystem: review: https://github.com/perl6/ecosystem/pull/290
14:35 Geth ecosystem: 2ba57a5cf4 | (Bahtiar Gadimov)++ | META.list
14:35 Geth ecosystem: Add Ddt - Distribution Development Tool
14:35 Geth ecosystem: review: https://github.com/perl6/ecosystem/commit/2ba57a5cf4
14:36 domidumont joined #perl6
14:36 RabidGravy joined #perl6
14:39 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:40 moritz you have to be a bit more careful
14:40 moritz first, the 'use' statement might be in pod
14:41 moritz second, 'use' could refer to internal modules (dependencies in META6.json are only for external ones)
14:41 moritz or to core things, like MONKEY-... pragmas
14:42 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 kalkin- anything else?
14:42 * DrForr pricks up his ears.
14:43 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 kalkin- but at some point i will need Perl6::Parser anyway if I want to make ddt smarter
14:45 domidumont joined #perl6
14:57 lmmx joined #perl6
14:59 kalkin- is it the right thing to do to set “auth” field in META6.json to “github:$USER” when source url is github?
15:01 _28_ria joined #perl6
15:31 xinming joined #perl6
15:32 kalkin- argle zef can't handle github https urls not ending in .git
15:36 bwisti joined #perl6
15:36 dugword joined #perl6
15:48 zakharyas joined #perl6
15:49 holli_ joined #perl6
15:57 zakharyas joined #perl6
16:00 holli__ joined #perl6
16:14 holli_ joined #perl6
16:23 lmmx joined #perl6
16:25 jdv79 what is $() again?
16:25 shayan_ joined #perl6
16:27 dugword joined #perl6
16:28 timotimo isn't that $/.ast // $/.Str?
16:28 timotimo potentially || instead of //
16:28 jdv79 i just have something that i think should be a hash but seems to be a list wrapping the hash
16:28 jdv79 i just don't get the syntax or context of it yet
16:29 timotimo with $( ... ) you itemize a thing
16:29 timotimo but $() is A Thing
16:29 timotimo m: "hello" ~~ / . /; say $().perl
16:29 camelia rakudo-moar 2140c9: OUTPUT«"h"␤»
16:29 timotimo m: "hello" ~~ / . { make "oh yeah" } /; say $().perl
16:29 camelia rakudo-moar 2140c9: OUTPUT«"oh yeah"␤»
16:30 jdv79 say $(:k('v')).WHAT
16:30 jdv79 m: say $(:k('v')).WHAT
16:30 camelia rakudo-moar 2140c9: OUTPUT«(Pair)␤»
16:31 jdv79 m: say $(:k('v'),:k2('v')).WHAT
16:31 camelia rakudo-moar 2140c9: OUTPUT«(List)␤»
16:31 b2gills m: $/ = class { method ast { 'ast' }; method Str {'Str'}}; say $()
16:31 camelia rakudo-moar 2140c9: OUTPUT«ast␤»
16:31 b2gills m: $/ = class { method ast { Any }; method Str {'Str'}}; say $()
16:31 camelia rakudo-moar 2140c9: OUTPUT«Str␤»
16:31 khw joined #perl6
16:31 jdv79 that "looks" like a hash as an item type thing to me
16:32 timotimo m: $/ = class { method ast { False }; method Str {'Str'}}; say $()
16:32 camelia rakudo-moar 2140c9: OUTPUT«Str␤»
16:32 timotimo jdv79: not sure how you mean that
16:32 b2gills I think it should be $/.ast // $/.Str, but is $/.ast || $/.Str currently
16:32 jdv79 ok
16:33 timotimo just a list of pairs will just be a list
16:33 timotimo :1foo,:2bar only becomes a hash if it gets assigned to a %var or %(...) or .Hash or .hash
16:34 timotimo but before that it's still just a List of Pair objects
16:43 jdv79 thanks
16:45 shayan_ joined #perl6
16:46 dotness joined #perl6
17:01 mxco86 joined #perl6
17:51 SmokeMachine about 2 versions of a module on the same dist:
17:51 SmokeMachine this doesn't work... https://www.irccloud.com/pastebin/hnjqbRqO/
17:52 brokenchicken SmokeMachine: why do you need to versions anyway?
17:53 SmokeMachine brokenchicken: retro-compatibility if I change my API...
17:53 brokenchicken "if" you change it?
17:54 brokenchicken 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
17:54 yoleaux 13 Jan 2017 16:40Z <tbrowder> ugexe: see https://www.irccloud.com/pastebin/ZJJNBEL2/zef-install-data-dump
17:54 brokenchicken SmokeMachine: here's how tbrowder released two different versions:
17:54 brokenchicken https://github.com/perl6/ecosystem/blob/master/META.list#L732-L733
17:55 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?
17:56 brokenchicken Seems you're trying to solve an invented problem...
17:56 SmokeMachine not yet...
17:56 brokenchicken And if you ever do create a new API; by that time our Ecosystem and supporting software may be radically different.
17:56 brokenchicken .oO( we also have the :api<> adverb... )
17:56 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
17:57 kalkin- TIL about :api adverb. What is the difference between :api & :ver?
17:58 SmokeMachine kalkin-: thats what I was going to ask!
17:58 ugexe nothing yet. dont use it
17:58 kalkin- :D
17:58 raschipi joined #perl6
17:58 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
17:59 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).
18:00 brokenchicken 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:01 kalkin- brokenchicken: I asked the same question a few days ago. People see :ver and expect it to somehow work
18:01 shayan_ joined #perl6
18:01 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
18:02 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:03 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:04 kalkin- I have thought about it but it's elaborate for me and I don't have the time for it
18:04 kalkin- you could even go as far as auto add all repos from GitHub which are written in Perl6 and have a META6.json
18:05 kalkin- SmokeMachine: your issue is solvable, but no one yet had the time to implement it. May be you would be the first one?
18:06 SmokeMachine ugexe: so much longer that is it impractical?
18:06 azawawi joined #perl6
18:06 azawawi hi
18:06 azawawi ugexe: ping
18:06 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)
18:07 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
18:07 kalkin- (a middlesized shell script)
18:08 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 ?
18:08 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
18:08 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...
18:08 azawawi kalkin-: i meant Build.pm code that does not use Panda::Builder
18:09 ugexe kalkin-: you can do versions without doing a release - you can link to a tar.gz of a specific commit
18:09 ugexe azawawi: https://github.com/niner/Inline-Perl5/commit/838d86ec2582410233a85253540970b3ab3c7d11
18:09 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
18:10 azawawi ugexe++
18:11 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
18:12 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"
18:13 brokenchicken Module installers don't even use that site.
18:13 dugword joined #perl6
18:13 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
18:13 kalkin- brokenchicken: link?
18:14 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
18:14 brokenchicken kalkin-: I dunno what it is.
18:15 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
18:15 kalkin- brokenchicken: p6c is the zef repo which is backed by the ecosystem
18:16 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?
18:16 brokenchicken kalkin-: "p6c"?
18:17 ugexe p6c is the terminology for *~*the ecosystem*~*
18:17 kalkin- brokenchicken: look in to your zef config.json
18:17 brokenchicken .ask mst what's happening with the Perl 6 MetaCPAN / PAUSE effort? How can willing hands contribute?
18:17 yoleaux brokenchicken: I'll pass your message to mst.
18:17 brokenchicken kalkin-: I don't have zef config.json
18:17 ugexe e.g. http://ecosystem-api.p6c.org/projects.json
18:18 brokenchicken right
18:18 brokenchicken That thing still has all the problems with our current ecosystem
18:18 SmokeMachine ugexe: ^^
18:18 kalkin- brokenchicken: zef 2>&1|grep config.json
18:18 brokenchicken kalkin-: "zef: command not found"
18:18 kalkin- brokenchicken: well you could have just said that :P
18:21 xinming joined #perl6
18:21 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 http://shadow.cat/blog/matt-s-trout/the-psixdists-experiment/
18:22 brokenchicken kalkin-: that's the thing yes, tho AFAIK there's been more progress since that article's publishing date.
18:23 brokenchicken 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 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 infrabyte joined #perl6
18:24 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 brokenchicken 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 #perl6
18:25 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
18:25 brokenchicken kalkin-: searching them, for once.
18:26 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
18:26 brokenchicken hmmm
18:26 brokenchicken :(
18:27 ugexe http://www.cpan.org/authors/id/P/PS/PSIXDISTS/Perl6/
18:27 ugexe note how older versions have a `*.meta`
18:28 brokenchicken huggable: cpan :is: http://www.cpan.org/authors/id/P/PS/PSIXDISTS/Perl6/
18:28 huggable brokenchicken, Added cpan as http://www.cpan.org/authors/id/P/PS/PSIXDISTS/Perl6/
18:28 brokenchicken yeah :(
18:29 raschipi Does a module receive the requested version so that it can export an older interface like C does?
18:31 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 kalkin- I just want to push to some git repository properly tag it and then some Indexer can index and distribute it
18:32 kalkin- 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:33 kalkin- What am I missing?
18:33 ugexe how often does github go down?
18:33 kalkin- ugexe: well my own git server is fine too
18:34 kalkin- ugexe: also PAUSE can also go down (CPAN has mirrors afaik, right?)
18:34 dugword joined #perl6
18:35 SmokeMachine I can't get it!!! How does it work? https://www.irccloud.com/pastebin/EOJK5jTo/
18:36 kalkin- SmokeMachine: what are you doing?
18:36 sufrostico joined #perl6
18:36 SmokeMachine testing versions...
18:36 kalkin- How want you ship them? Multiple versions in same Distribution?
18:37 ugexe you probably have to install them both and test it that way
18:37 ugexe im not sure if CURFileSystem (-I, use lib '...') does versions
18:38 SmokeMachine on this test im not use()ing :ver...
18:39 SmokeMachine I thinks thats the use lib "."...
18:39 ugexe that use lib isnt doing anything
18:40 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?
18:41 SmokeMachine without the use lib "." https://www.irccloud.com/pastebin/ln408db3/
18:41 SmokeMachine I didn't know thats recursive...
18:42 ugexe its not. what do you expect `use lib "."` to be pointing at?
18:42 ugexe 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
18:43 SmokeMachine Im not...
18:44 ugexe your second example does the right thing
18:44 SmokeMachine ugexe https://www.irccloud.com/pastebin/OfmFwARb/
18:44 SmokeMachine but without the use lib "."...
18:45 ugexe probably precomp related... rm -rf .precomp/
18:47 SmokeMachine ugexe: yes... .precomp
18:49 brokenchicken kalkin-: you're happy with github? What about versioning?
18:49 kalkin- brokenchicken: git tags
18:49 brokenchicken kalkin-: and how many authors use them?
18:49 ugexe add(?) github oauth and web hooks to pause
18:50 kalkin- brokenchicken: if you are not using them it's your fault. this is what git tags are for
18:51 kalkin- 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
18:52 brokenchicken 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)
18:52 kalkin- ugexe: ohh, i thought recommendation manager === cpan
18:52 xfix joined #perl6
18:53 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?
18:53 kalkin- brokenchicken: this depends on your content storage policy.
18:54 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 brokenchicken kalkin-: and what is that policy?
18:54 kalkin- brokenchicken: what ever the content storage admin decides.
18:55 kalkin- 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?
18:56 brokenchicken 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
18:56 kalkin- s/other/others
18:56 brokenchicken :S
18:56 brokenchicken I'm confused then.
18:57 brokenchicken 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
18:57 brokenchicken OK
18:57 ugexe you can install cpan modules without corporate security shitting up the forced https of github
18:58 kalkin- brokenchicken: also why do we have the support field in META6 if we all going to use CPAN for tracking bugs?
18:59 brokenchicken kalkin-: you're confused about the systems involved.
18:59 kalkin- brokenchicken: may be…
18:59 brokenchicken kalkin-: you get shity RT tracker for free when you upload to CPAN, but no one's forcing you to use it.
19:00 brokenchicken And that's not why we want to upload to CPAN.
19:00 ugexe https://metacpan.org/pod/distribution/Inline-C/lib/Inline/C.pod look at where the "Issues" points to
19:01 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 Tonik joined #perl6
19:02 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:03 kalkin- I see.
19:04 kalkin- Ok the only barrier I'm having now is how can I hack PAUSE to work with Perl6?
19:04 kalkin- cpan search for PAUSE returns a ton of results
19:04 brokenchicken IIRC it already does, you just select Perl 6 in one of the fields
19:04 * brokenchicken logs in to look
19:04 kalkin- so what is missing?
19:05 kalkin- just search?
19:05 ugexe http://hack.p6c.org:5000/v0/release/ # there is also the metacpan stuff jdv79 has worked on
19:05 ugexe cpan doesnt handle multiple versions of the same dist name
19:06 ugexe 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: http://i.imgur.com/fK8cYpo.png
19:08 brokenchicken I think this one's it: https://metacpan.org/release/App-git-shipH
19:08 brokenchicken I think this one's it: https://metacpan.org/release/App-git-ship
19:11 brokenchicken .oO( someone motivated should write a Perl 6 PAUSE uploader script...
19:11 brokenchicken )
19:11 brokenchicken I think someone shipped a Ddt distro toolkit or soemthing last night? Could be part of it.
19:11 kalkin- brokenchicken: I planned to implement some release feature at some point
19:12 kalkin- Yes i shiped ddt :D
19:12 brokenchicken \o/
19:15 confundus joined #perl6
19:17 pmurias joined #perl6
19:17 kalkin- How does CPAN handle different versions in Perl5, or not at all?
19:17 ugexe it handles them as you would probably expect
19:18 ugexe however, it doesnt understand Foo::Bar:ver<1>:auth<xxx> vs Foo::Bar:ver<1>:auth<qqq>
19:18 kalkin- ahh ic
19:18 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
19:19 brokenchicken I wonder if we can cheat with the :auth thing, by simply making it part of the version....
19:19 brokenchicken Oh, won't help
19:19 brokenchicken never mind :P
19:20 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:21 kalkin- 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
19:22 kalkin- Does CPAN differentiate between Distribution and compunits? (Not that this is important at the moment…)
19:23 pmurias kalkin-: a given distribution can contain multiple modules
19:23 ugexe only the compiler cares about compunits
19:23 ugexe a compunit is basically just a Distribution that is loaded
19:24 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:25 MasterDuke joined #perl6
19:25 ugexe im not sure cpan indexes the 'provides' (although metacpan does)
19:27 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:29 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
19:29 ugexe 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 #perl6
19:30 kalkin- k, thanks for the explanation
19:31 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:34 kalkin- I think I understand now
19:48 kalkin- moritz: thanks for the invitation!
19:49 moritz kalkin-: you're welcome
19:51 bjz joined #perl6
19:52 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:53 kalkin- Or do you guys think that this keeps useless modules out of CPAN?
19:55 AlexDaniel joined #perl6
19:55 art_ joined #perl6
19:59 art_ Hi, everyone! Perl6 differs greatly from Perl5? What language is best to start learning?
20:00 sjn hi art_ o/
20:00 sjn both languages are worth learning :)
20:01 sjn but having said that, we do have a certain bias towards Perl 6 in this channel :D
20:01 sjn art_: what's your goal? work? curiosity? learning to program? exploring advanced concepts? having fun?
20:02 geraud joined #perl6
20:04 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 brokenchicken And best of both worlds: learn both.
20:04 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"
20:04 yoleaux 18:17Z <brokenchicken> mst: what's happening with the Perl 6 MetaCPAN / PAUSE effort? How can willing hands contribute?
20:05 mst brokenchicken: no idea, jdv79 was working on the metacpan stuff
20:05 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?
20:06 brokenchicken The blog post I recall you wrote about it
20:06 brokenchicken art_: don't understand the question. What do you mean documentation of P5 to study P6?
20:06 brokenchicken on P5
20:06 DrForr art_: docs.perl6.org, though starting with perl6.org is the right place.
20:07 * brokenchicken would go with https://learnxinyminutes.com/docs/perl6/ as a starting point
20:08 brokenchicken And for Perl 5, with http://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.
20:08 mst errr, I think psixdists is running, ranguard's been popping up in here to ask stuff
20:09 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
20:09 mst I kind of only step in to co-ordinate here when something appears to be going sideways
20:09 brokenchicken Him is whom ranguard?
20:09 mst yes
20:09 brokenchicken Oh, no that problem is still there...
20:09 mst well, or at least, it was a "you're figuring it out"
20:09 mst Iunno
20:09 brokenchicken But at least that gives me a starting point to make this thing move forward....
20:10 art_ If I will learn P5 (https: //www.perl.org/docs.html) whether many changes compared to the P6 (http://perl6intro.com/)?
20:10 TEttinger joined #perl6
20:10 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
20:10 mst we're currently in the latter phase
20:10 brokenchicken :)
20:10 DrForr art_: Yes, that's what I'd said above.
20:12 kalkin- mst: ahh, thanks
20:13 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?
20:13 yoleaux brokenchicken: I'll pass your message to jdv79.
20:13 kalkin- brokenchicken: you were faster :D
20:14 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:15 kalkin- are there actually any reasons for not to use Inline::Perl5?
20:15 brokenchicken art_: Perl 5: https://metacpan.org/  Perl 6: http://modules.perl6.org/
20:15 Gasher joined #perl6
20:17 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:18 kalkin- brokenchicken: ahh ok.
20:18 brokenchicken It's not a hack, but it's not a perfect solution either.
20:18 lmmx joined #perl6
20:21 art_ Ok, thanks.
20:21 brokenchicken art_: there's also a perl 5's IRC channel: #perl
20:24 art_ brokenchicken: Ok, but probably I will look towards P6.
20:26 sjn art_: perl6 is really fun. I think you can look forward to exploring it :)
20:27 * DrForr waves to sjn.
20:28 gfldex art_: we got blogs! http://pl6anet.org/
20:29 lizmat https://jj.github.io/perl6em/perl6.html   # Perl 6, The Musical
20:30 lizmat JJ Merelo ++
20:32 rindolf joined #perl6
20:34 brokenchicken :o
20:36 brokenchicken body { width: 1000px; margin: auto; }
20:38 brokenchicken .seen jjmerelo
20:38 yoleaux I saw JJMerelo 26 Dec 2016 16:58Z in #perl6: <JJMerelo> @mst :-)
20:39 * brokenchicken spots the mention of ». but no word of the caveat of its autothreading.
20:39 lizmat I understand that comments are welcome  :-)
20:39 brokenchicken Where can they be placed?
20:40 brokenchicken m: say cos π/2
20:40 camelia rakudo-moar 2140c9: OUTPUT«6.12323399573677e-17␤»
20:40 girafe joined #perl6
20:40 brokenchicken And that ^ is due to π not being actual pi
20:40 lizmat brokenchicken: I guess here https://github.com/JJ/perl6em
20:40 brokenchicken Thanks
20:41 brokenchicken m: say pi
20:41 camelia rakudo-moar 2140c9: OUTPUT«3.14159265358979␤»
20:41 nowan joined #perl6
20:41 brokenchicken hmm. rats wont help with the maximum precision we got in nums...
20:41 melezhik_ joined #perl6
20:42 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…»
20:42 brokenchicken m: say 314159265358979323846264338327950288419716939937510582/(1 ~ '0' x 53 .EVAL)
20:42 camelia rakudo-moar 2140c9: OUTPUT«3.14159265358979␤»
20:42 brokenchicken m: say cos 314159265358979323846264338327950288419716939937510582/(1 ~ '0' x 53 .EVAL)
20:42 camelia rakudo-moar 2140c9: OUTPUT«-1␤»
20:42 brokenchicken \o/ w00t
20:43 Ven joined #perl6
20:44 brokenchicken huh, this weird
20:44 brokenchicken m: say cos 314159265 / 100000000
20:44 camelia rakudo-moar 2140c9: OUTPUT«-1␤»
20:45 brokenchicken m: say cos Num(314159265 / 100000000)
20:45 camelia rakudo-moar 2140c9: OUTPUT«-1␤»
20:45 brokenchicken :S
20:45 brokenchicken m: say cos pi
20:45 camelia rakudo-moar 2140c9: OUTPUT«-1␤»
20:45 brokenchicken oh
20:45 brokenchicken :(
20:45 brokenchicken m: say cos 314159265358979323846264338327950288419716939937510582/(1 ~ '0' x 53 .EVAL)/2
20:45 camelia rakudo-moar 2140c9: OUTPUT«6.12323399573677e-17␤»
20:45 brokenchicken awwwwww
20:46 SmokeMachine is that a bug or is it expected?
20:46 brokenchicken Expected
20:47 brokenchicken Not enough precision to get -0.5
20:47 brokenchicken m: say cos 1.57079632679
20:47 camelia rakudo-moar 2140c9: OUTPUT«4.89658886014675e-12␤»
20:47 SmokeMachine brokenchicken: I mean this:
20:47 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:47 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…»
20:49 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␤␤»
20:49 brokenchicken :o
20:49 brokenchicken m: (Date but role {method day {...}}).today.day.say
20:49 camelia rakudo-moar 2140c9: OUTPUT«15␤»
20:49 brokenchicken Ah right, it does have a day
20:50 brokenchicken SmokeMachine: it's cause R.Date puns the R role, so it cries about wanting the method
20:50 brokenchicken m: role R {method day {...}; method Date(R:U:) {Date but R}; method meow {} }; R.meow
20:50 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…»
20:50 brokenchicken yup
20:51 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␤␤»
20:51 SmokeMachine m: class C {method test {}}; (C but role {method test {...}}).test
20:51 camelia rakudo-moar 2140c9: ( no output )
20:51 SmokeMachine m: class C {method test {}}; (C but role {method test {...}}) ~~ C
20:51 camelia rakudo-moar 2140c9: ( no output )
20:52 SmokeMachine m: class C {method test {}}; say (C but role {method test {...}}) ~~ C
20:52 camelia rakudo-moar 2140c9: OUTPUT«True␤»
20:52 brokenchicken SmokeMachine: it fails before the .Date method is called; its contents are irrelevant.
20:55 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 bjz joined #perl6
20:56 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:57 brokenchicken Not a bug.
20:57 Geth doc: 57d5071f90 | (Wenzel P. P. Peppmeyer)++ | type-groups.json
20:57 Geth doc: In preparation to make /type.html decent, first shot at grouping types.
20:57 Geth doc: review: https://github.com/perl6/doc/commit/57d5071f90
20:58 lizmat joined #perl6
20:58 SmokeMachine brokenchicken: why?
20:59 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.
21:01 SmokeMachine :(
21:01 brokenchicken m: class C {method test {}}; role R {method test {...}; method C { C but R}}; say R.^lookup("C")(R) ~~ C
21:01 camelia rakudo-moar 2140c9: OUTPUT«True␤»
21:01 brokenchicken ehehe cheetsy-doodly
21:02 espadrine joined #perl6
21:04 cdg joined #perl6
21:04 Gasher_ joined #perl6
21:05 cdg joined #perl6
21:05 lmmx joined #perl6
21:06 dugword joined #perl6
21:22 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
21:22 samcv thanks thundergnat
21:23 brokenchicken evening
21:23 samcv m: my %hash = 1 => 'value', 2 => 'value', 10 => 'value; say %hash.sort({+*.key})
21:23 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␤        …»
21:24 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({…»
21:24 samcv m: my %hash = 1 => 'value', 2 => 'value', 10 => 'value'; say %hash.sort(+*.key)
21:24 camelia rakudo-moar 2140c9: OUTPUT«(1 => value 2 => value 10 => value)␤»
21:24 samcv cool
21:28 raiph joined #perl6
21:29 brokenchicken and - does it in reverse order
21:29 kalkin- why does +/- indicate the sort order? Is it just a nice hack or is there some reasoning behind?
21:30 timotimo um
21:30 timotimo it's because negative values are smaller than positive values
21:30 brokenchicken kalkin-: - inverts the numbers when they're being compared, and thus reverses the sort
21:30 kalkin- ohh
21:31 kalkin- You just make numbers positive through using +
21:31 kalkin- (or negative through -)
21:31 timotimo you make things into numbers with +
21:31 brokenchicken right
21:31 brokenchicken m: dd [+"42", -"42", +"-42", -"-42"]
21:31 camelia rakudo-moar 2140c9: OUTPUT«[42, -42, -42, 42]␤»
21:32 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)␤»
21:32 brokenchicken m: my %hash = 1 => 'value', 2 => 'value', 10 => 'value'; say %hash.sort(0 - *.key.Int)
21:32 camelia rakudo-moar 2140c9: OUTPUT«(10 => value 2 => value 1 => value)␤»
21:32 timotimo m: say +(:1foo)
21:32 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 #perl6
21:33 kalkin- I thought first -* & +* is some special form of whatever
21:33 brokenchicken nope
21:33 brokenchicken Just infix:<-> / infix:<+>
21:33 brokenchicken err
21:34 brokenchicken prefix:<-> / prefix:<+>
21:34 kalkin- prefix?
21:34 kalkin- right
21:37 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:41 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:42 lizmat when Perl 6 becomes sentient and telepathic, maybe ?
21:43 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
21:43 timotimo like, explode immediately
21:43 timotimo rather than having to wait for runtime to hit that code path
21:45 gfldex i wonder if ★ as an alias for the Whatever-* could improve readability
21:45 timotimo i could see that
21:45 timotimo it's potentially enough to just constant that
21:46 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␤␤»
21:46 timotimo ah
21:46 timotimo apparently not
21:46 timotimo sadface
21:46 brokenchicken .oO( don't improve readability in that one much either )
21:47 gfldex in cases like ★*★
21:47 gfldex or the other way around
21:47 timotimo well, you can use multiplication-cross for the multiplication case of *
21:48 timotimo that makes it more readable, too
21:48 gfldex good point
21:48 brokenchicken m: role R {method day {...}; method ^pun($) { say "sod off, bruh"; }; method Date(R:U:) {Date but R}; method meow {} }; R.meow
21:48 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…»
21:49 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
21:49 brokenchicken ufobat: $foo ~~ Bool
21:49 ufobat m: my $t = True; say so $foo ~~ Bool
21:49 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␤»
21:50 gfldex ufobat: see https://docs.perl6.org/language/typesystem#Metaclass
21:50 ufobat m: my $t = True; say so $t ~~ Bool
21:50 camelia rakudo-moar 2140c9: OUTPUT«True␤»
21:50 brokenchicken gfldex: what's wrong with ~~ Bool?
21:51 ufobat m: my $t = True; say so $t ~~ Bool
21:51 camelia rakudo-moar 2140c9: OUTPUT«True␤»
21:51 ufobat oups,
21:51 SmokeMachine brokenchicken: what's ^pun?
21:51 brokenchicken SmokeMachine: it puns the role
21:51 ufobat sorry, i'd need a False for this check
21:51 brokenchicken m: role R { method day {...}}.^pun
21:51 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…»
21:51 brokenchicken ufobat: False what?
21:51 SmokeMachine What means pun?
21:52 ufobat my $t could either be a Numeric, String or Bool
21:52 brokenchicken SmokeMachine: to use a role as a class
21:52 brokenchicken ufobat: ok
21:52 SmokeMachine brokenchicken: thanks!
21:53 ufobat so my $boolean ~~ Numeric is "true" but in fact is is Bool in my $boolean
21:53 timotimo Bool is Int
21:53 brokenchicken ufobat: !~~ is the negative of ~~
21:53 brokenchicken ufobat: but you're also missing that Numeric can be a Stringy too
21:54 brokenchicken m: dd [ $_ ~~ Numeric, $_ ~~ Str ] given <42>
21:54 camelia rakudo-moar 2140c9: OUTPUT«[Bool::True, Bool::True]␤»
21:54 ufobat hm
21:55 Cabanossi joined #perl6
21:55 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␤»
21:55 brokenchicken m: $_ ~~ Numeric and $_ !~~ Stringy and $_ !~~ Bool and say "Just a plain 'ol Numeric" given <42>
21:55 camelia rakudo-moar 2140c9: ( no output )
21:55 brokenchicken m: $_ ~~ Numeric and $_ !~~ Stringy and $_ !~~ Bool and say "Just a plain 'ol Numeric" given True
21:55 camelia rakudo-moar 2140c9: ( no output )
21:55 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
21:55 kalkin- plugin system?
21:55 kalkin- s/some roles/some plugins/
21:56 ufobat brokenchicken, thats it for "numbers"
21:56 ufobat what would it be for "plain Bool"?
21:56 brokenchicken :(
21:56 brokenchicken ufobat: ~~ Bool, bruh
21:56 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?
21:57 Hotkeys_ m: my $s = "_x ̽"; $s.say; $s.comb(/\S+/).say #for example
21:57 camelia rakudo-moar 2140c9: OUTPUT«_x ̽␤(_x)␤»
21:57 ufobat its to late for me already, got your hint now!
21:57 ufobat tyvm!
21:57 ugexe i would doubt it does anything in parallel because you lose all reproduceability
21:57 brokenchicken kalkin-: I think #perl may know the answer better... BTW: Dist::Zilla is a monster...
21:57 kalkin- brokenchicken: right good idea, will try that
21:57 ugexe oh hey this time plugin X ran before plugin Y and changed the outcome
21:58 brokenchicken heh
21:58 brokenchicken m: my $s = "_x ̽"; $s.say; $s.words.say
21:58 camelia rakudo-moar 2140c9: OUTPUT«_x ̽␤(_x)␤»
21:58 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
21:58 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
21:59 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
21:59 Hotkeys_ ("_x", "ˣ")
22:00 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...
22:00 Hotkeys_ right now it seems to see the combining char composed onto the space and therefore treats it as part of the whitespace
22:00 brokenchicken m: say x ̽".chars
22:00 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…»
22:00 brokenchicken m: say"x ̽".chars
22:00 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…»
22:01 brokenchicken man this stuff really tore up my terminal :(
22:01 brokenchicken m: " ̽".chars.say
22:01 camelia rakudo-moar 2140c9: OUTPUT«1␤»
22:01 brokenchicken That's what I meant. It's part of the space and gets tossed along with it
22:01 kalkin- ugexe: last time we spoke about it you mentioned some node.js build stuff? I can't remember the name of it
22:01 brokenchicken Oh
22:02 * 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 #perl6
22:02 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 Hotkeys_ Without converting to a buf and then back again
22:02 brokenchicken m: my $s = "_x ̽"; $s.split(/[(\s) {$0.chars == $0.codes}]+/).say
22:02 camelia rakudo-moar 2140c9: OUTPUT«(_x )␤»
22:02 brokenchicken m: my $s = "_x ̽"; $s.split(/[(\s) {$0.chars == $0.codes}]+/).elems.say
22:02 camelia rakudo-moar 2140c9: OUTPUT«2␤»
22:03 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
22:03 brokenchicken m: my $s = "_x ̽"; $s.split(/[(\s) {$0.chars == $0.codes}]+/).[1].uninames.say
22:03 camelia rakudo-moar 2140c9: OUTPUT«()␤»
22:03 kalkin- this might allow more concurrency
22:03 brokenchicken Oh, right, that's just the empty spot :(
22:04 brokenchicken maybe samcv would have a better idea
22:05 samcv what are you trying to do
22:06 brokenchicken samcv: split "_x ̽" on whitespace, to result in "_, "x ̽"
22:06 brokenchicken uhhh
22:06 brokenchicken for _x to be one item and for the combining thing the second item
22:07 Hotkeys_ result in ("_x", "ˣ")
22:07 brokenchicken m: say "ˣ".uniprops
22:07 camelia rakudo-moar 2140c9: OUTPUT«(Lm)␤»
22:07 thundergnat m: my $s = "_x ̽"; say $s; .say for $s.NFD;
22:07 camelia rakudo-moar 2140c9: OUTPUT«_x ̽␤95␤120␤32␤829␤»
22:07 thundergnat m: my $s = "_x ̽"; say $s; .chr.say for $s.NFD;
22:07 camelia rakudo-moar 2140c9: OUTPUT«_x ̽␤_␤x␤ ␤̽␤»
22:07 samcv mabye my font rendering is tricking me? uhm
22:07 rindolf joined #perl6
22:07 samcv let me change fonts
22:08 Hotkeys_ given that it's a lone combining char, it'll attach to space and quotes
22:08 Hotkeys_ so yeah probably tricks
22:08 samcv m: "_x ̽".uninames.say
22:08 camelia rakudo-moar 2140c9: OUTPUT«(LOW LINE LATIN SMALL LETTER X SPACE COMBINING X ABOVE)␤»
22:08 samcv m: "_x ̽".uninames.perl.say
22:08 camelia rakudo-moar 2140c9: OUTPUT«("LOW LINE", "LATIN SMALL LETTER X", "SPACE", "COMBINING X ABOVE").Seq␤»
22:08 samcv m: "_x ̽".uniprops('GCB').perl.say
22:08 camelia rakudo-moar 2140c9: OUTPUT«("Other", "Other", "Other", "Extend").Seq␤»
22:08 samcv ok
22:09 samcv now i can see what's going on ;)
22:09 samcv also you shouldn't have a combiing x above after a space
22:09 samcv tbh but. that's not exactly the question i guess
22:09 samcv m: "_x ̽".chars.say
22:09 camelia rakudo-moar 2140c9: OUTPUT«3␤»
22:10 samcv so you want to split it into 4 characters?
22:10 samcv err or split extending characters?
22:10 Hotkeys_ Ideally I want to split it by the whitespace
22:10 Hotkeys_ but right now whitespace is including the combiner
22:10 samcv ok
22:11 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)␤»
22:11 brokenchicken m: my $s = "_x ̽"; $s.NFD.map({ .chr.uniprop('White_Space') ?? 10 !! $_ })».chr.join.words.[0].uninames.say
22:11 camelia rakudo-moar 2140c9: OUTPUT«(LOW LINE LATIN SMALL LETTER X)␤»
22:12 samcv ok
22:12 samcv m: "_x ̽".split(/\s/, :includemark).perl.say
22:12 camelia rakudo-moar 2140c9: OUTPUT«("_x", "")␤»
22:12 samcv hm
22:12 samcv m: "_x ̽".split(/\s/, :ignoremark).perl.say
22:12 camelia rakudo-moar 2140c9: OUTPUT«("_x", "")␤»
22:12 samcv m: "_x ̽".split(/\s/, :ignoremark).».uninames.perl.say
22:12 camelia rakudo-moar 2140c9: OUTPUT«(("LOW LINE", "LATIN SMALL LETTER X").Seq, ().Seq)␤»
22:12 timotimo Str will vehemently prevent you from splitting a combiner from its letter
22:12 timotimo you'll need .NFD if you want it another way
22:12 samcv yeah
22:13 samcv well doesn't have to be NFD
22:13 samcv NFC would work too
22:13 timotimo but only in this special case :)
22:13 samcv well. special? i mean the whole question is regarding a degenerate attached to a space
22:14 samcv that seems the exact case of what's going on atm
22:14 timotimo ok
22:14 timotimo i didn't pay enough attention
22:14 samcv where you have a degenerate after a space, so it attaches not to anything it should.
22:14 samcv np :)
22:15 samcv we would not go against unicode spec if we didn't allow you to combine marks onto spaces
22:15 samcv that may be a decent thing to do
22:15 samcv i have an rt about this exact thing. let me find it
22:15 timotimo hm
22:15 samcv unicode basically says you can handle degenerates however you want as long (for the most part)
22:16 Hotkeys_ it does seem strange for combiners to attach to spaces
22:16 samcv yeah that's why it's called a degenerate
22:16 samcv so we could not break there. I would be ok with that and could change that on MVM
22:16 samcv https://rt.perl.org/Ticket/Display.html?id=130384 here's the RT
22:16 Hotkeys_ they also attach to quotes so it's impossible to actually enter a string containing a lone combiner
22:16 samcv heh
22:16 Hotkeys_ :P
22:16 samcv yep
22:16 samcv see rt :P
22:17 Hotkeys_ ah
22:17 Hotkeys_ nice
22:18 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:19 samcv there's a proposal to make an invisible letter http://unicode.org/review/pr-41-invisible.pdf part of unicode
22:19 samcv and you can attach marks onto it and be all in the clear
22:19 Hotkeys_ I've seen that and like that
22:20 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 samcv for making it not attach to punctuation characters I would have to do more research
22:23 cdg_ joined #perl6
22:23 cdg__ joined #perl6
22:25 BenGoldberg joined #perl6
22:25 samcv Hotkeys, i am going to see if i can add that into MVM, to not break on spaces
22:25 samcv if it's an extend
22:25 Hotkeys ok cool
22:27 samcv should be an easy fix at least for this case
22:27 samcv just gotta make sure it passes all spectests
22:27 samcv which it should. but gotta double check ;)
22:30 samcv wait since when did we pass all the graphemeclusterbreak.t tests?
22:30 timotimo oops?
22:30 samcv did somebody remove things on accident
22:30 samcv heh
22:32 samcv i'll just regen it
22:33 samcv err maybe it was me idk. hold on gotta check
22:33 samcv or maybe we are passing all tests and i'm just that good ;)
22:33 raiph joined #perl6
22:34 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 TEttinger invsible negative-width whitespace characters
22:36 TEttinger like \r on some setups, heh
22:36 samcv negative width?
22:36 samcv is that what the proposal says?
22:36 TEttinger why not
22:36 TEttinger no
22:37 TEttinger it could in theory be useful!
22:37 TEttinger overdraw was used in early APL
22:47 samcv oh negative width chars?
22:47 samcv but… that's not plaintext tho
22:47 DrForr Nod, quad was [ overprinted with ].
22:47 samcv unicode would never allow it
22:47 samcv heh ;)
22:48 SmokeMachine I'm not changing anything, I'm just studying... but if here: https://github.com/rakudo/rakudo/blob/nom/src/Perl6/Metamodel/RolePunning.nqp#L36
22:48 lmmx joined #perl6
22:49 SmokeMachine I loop on the role methods greping the .yada and .add_method on the created type...
22:50 SmokeMachine Should it auto implemented the role's required modules on punning?
22:51 SmokeMachine s/role methods/role's methods/
22:52 SmokeMachine Would that work?
22:57 itcharlie1 joined #perl6
22:59 samcv Hotkeys, have a fix. gotta build nqp and rakudo then run spectest. if it passes then we should be good
23:00 Hotkeys love you platonically
23:00 samcv np
23:06 samcv m: say "\c[BELL]"
23:06 camelia rakudo-moar 2140c9: OUTPUT«🔔␤»
23:06 samcv yey :)
23:06 samcv u: U+7
23:06 unicodable6 samcv, U+0007 BELL [Cc] (control character)
23:07 samcv hmm AlexDaniel unicodable6 seems to have the old info
23:07 samcv u: bell
23:07 unicodable6 samcv, U+0007 BELL [Cc] (control character)
23:07 unicodable6 samcv, U+237E BELL SYMBOL [So] (⍾)
23:07 unicodable6 samcv, https://gist.github.com/d37370f64f576f3c7a43144044318b04
23:07 AlexDaniel u: { $_ == 7 }
23:07 unicodable6 AlexDaniel, U+0007 BELL [Cc] (control character)
23:07 AlexDaniel what's the right answer?
23:08 AlexDaniel ah right…
23:08 AlexDaniel I see…
23:08 samcv u: { .uniprop('White_Space') }
23:08 * AlexDaniel hides
23:09 samcv u: 0x7.uniname.say
23:09 samcv m: 0x7.uniname.say
23:09 camelia rakudo-moar 2140c9: OUTPUT«<control-0007>␤»
23:09 unicodable6 samcv, U+0009 CHARACTER TABULATION [Cc] (control character)
23:09 unicodable6 samcv, U+000A LINE FEED (LF) [Cc] (control character)
23:09 unicodable6 samcv, U+0078 LATIN SMALL LETTER X [Ll] (x)
23:09 unicodable6 samcv, U+0030 DIGIT ZERO [Nd] (0)
23:09 unicodable6 samcv, https://gist.github.com/ee088a584f227282b792d25f5d907be9
23:09 samcv whoops
23:10 shmibs joined #perl6
23:12 committable6 joined #perl6
23:12 unicodable6 joined #perl6
23:12 bisectable6 joined #perl6
23:12 evalable6 joined #perl6
23:12 benchable6 joined #perl6
23:12 statisfiable6 joined #perl6
23:12 AlexDaniel u: 0x7
23:12 unicodable6 AlexDaniel, U+0007 <control-0007> [Cc] (control character)
23:13 AlexDaniel samcv: like that? :)
23:13 samcv yea
23:20 TEttinger uh
23:21 TEttinger how would you use \c[] to produce the audible bell char?
23:21 TEttinger if BELL is an emoji
23:21 TEttinger m: say "\c[<control-0007>]"
23:21 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␤»
23:21 geekosaur m: "\c[BEL]".uniname.say
23:21 camelia rakudo-moar 2140c9: OUTPUT«<control-0007>␤»
23:22 TEttinger oh man
23:22 TEttinger that's silly, but it works
23:23 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
23:23 geekosaur BEL, LF, SOH, etc.
23:23 AlexDaniel m: “\c[ALERT]”.ord.say
23:23 camelia rakudo-moar 2140c9: OUTPUT«7␤»
23:23 AlexDaniel alert is fine
23:23 samcv AlexDaniel, you should see https://github.com/MoarVM/MoarVM/commit/816186484b5cc52f9ff1be6afa3b6f49264335bf
23:23 samcv see my commit description. it explains all the user facing changes
23:23 AlexDaniel me?
23:24 samcv idk if you haven't seen it
23:24 samcv then you should
23:24 samcv or anybody wanting to know what the recent changes were to character naming and being able to access them
23:24 samcv oh god. at the end XD # Please enter the commit message for your changes. Lines starting
23:24 samcv hahaha
23:24 samcv oh well.
23:24 samcv damn you git
23:25 AlexDaniel hah
23:25 AlexDaniel I often include some lines starting with # and then wonder why they are not in my commit message
23:25 samcv hah
23:26 samcv m: say "\c[ZWJ]".uniname
23:26 camelia rakudo-moar 2140c9: OUTPUT«ZERO WIDTH JOINER␤»
23:26 samcv can do that too now :)
23:26 AlexDaniel right!
23:26 samcv all aliases here: ftp://ftp.unicode.org/Public/UCD/latest/ucd/NameAliases.txt
23:27 samcv also Hotkeys adding space may be more complicated than I expected
23:27 samcv looks like unicode's grapheme break test includes that and says not to break there
23:27 samcv but. digging deeper it is more complex
23:27 AlexDaniel m: say “🙌\c[ZWJ]♂”
23:27 camelia rakudo-moar 2140c9: OUTPUT«🙌‍♂␤»
23:27 Hotkeys spooky
23:27 AlexDaniel no, it's not that one
23:28 AlexDaniel m: say “🤦\c[ZWJ]♂”
23:28 camelia rakudo-moar 2140c9: OUTPUT«🤦‍♂␤»
23:29 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
23:29 samcv m: say "\c[man astronaut: light skin tone]"
23:29 camelia rakudo-moar 2140c9: OUTPUT«👨🏻‍🚀␤»
23:29 AlexDaniel samcv: wait… how does that work?
23:29 samcv because I added it :)
23:29 samcv to MVM :)
23:30 AlexDaniel so what's the syntax exactly?
23:30 samcv https://github.com/MoarVM/MoarVM/pull/492
23:30 BenGoldberg joined #perl6
23:30 samcv it's anything that unicode says
23:30 samcv this http://unicode.org/Public/emoji/4.0/emoji-sequences.txt
23:30 samcv and this http://unicode.org/Public/emoji/4.0/emoji-zwj-sequences.txt
23:30 AlexDaniel m: say “\c[FACE PALM: MALE SIGN]”
23:30 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:30 samcv has to be lower case atm
23:31 AlexDaniel m: say “\c[face palm: male sign]”
23:31 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 samcv also. commas denote seperate characters AlexDaniel
23:31 samcv use commas if you are specifying the exact characters. use the names listed if it's a special sequence
23:31 samcv i still need to make it case insensiteve and remove commas from like. couple with heart: woman, man
23:32 samcv 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
23:32 AlexDaniel m: say “\c[man facepalming]”
23:32 camelia rakudo-moar 2140c9: OUTPUT«🤦‍♂️␤»
23:32 telex joined #perl6
23:32 samcv so need to fix that. but otherwise all the emoji sequences and zwj ones are added
23:32 samcv :D
23:32 samcv m: say "\c[United States]"
23:32 camelia rakudo-moar 2140c9: OUTPUT«🇺🇸␤»
23:32 AlexDaniel m: dd “\c[man facepalming]”.comb.uninames
23:32 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␤␤»
23:33 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␤»
23:33 AlexDaniel why variation selector?
23:33 samcv that is variation selector for emoji presentation
23:33 samcv there is a variation selector for text presentation too
23:33 samcv but unicode has those in their list so, that's why it gives you that
23:33 AlexDaniel oh, otherwise it will render as separate characters?
23:33 samcv well. otherwise it's not forced into any presentation i think
23:34 AlexDaniel ok
23:34 samcv not sure how computers handle it or if they even do, or phones for that matter. not sure
23:34 samcv still need to add the non emoji sequences too
23:34 samcv from here http://www.unicode.org/Public/9.0.0/ucd/NamedSequences.txt
23:34 AlexDaniel renders like shit here, which is why I asked yoleaux to remind me in two years…
23:35 samcv heh
23:35 samcv also the alias names also include corrections to incorrect unicode names, so it's pretty useful to support those
23:35 brokenchicken m: say “\c[man facepalming]”
23:35 camelia rakudo-moar 2140c9: OUTPUT«🤦‍♂️␤»
23:35 samcv u: U+FE18
23:35 unicodable6 samcv, U+FE18 PRESENTATION FORM FOR VERTICAL RIGHT WHITE LENTICULAR BRAKCET [Pe] (︘)
23:36 samcv see how that's misspelled :P
23:36 brokenchicken Hm, even my emoji one set on Windows can't render the facepalming
23:36 AlexDaniel yea-yea
23:36 brokenchicken Cool!
23:36 samcv but names never change! woo!
23:36 samcv but i guess it's okay since aliases exist
23:36 AlexDaniel yea
23:37 AlexDaniel 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 AlexDaniel most emojis I see have a woman
23:37 samcv you're on what os?
23:37 AlexDaniel Debian
23:37 AlexDaniel unstable
23:38 brokenchicken m: say “\c[woman facepalming]”
23:38 camelia rakudo-moar 2140c9: OUTPUT«🤦‍♀️␤»
23:38 AlexDaniel have no idea what font that is
23:38 brokenchicken m: say “\c[baby facepalming]”
23:38 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]”␤»
23:38 brokenchicken .oO( ISAGN )
23:38 samcv gonna try installing another font
23:40 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 AlexDaniel if there's no gender sign ZWJ-ed to it, please give me a smiley head…
23:42 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]”␤»
23:42 brokenchicken :(
23:42 brokenchicken m: say “\c[cat crying]”
23:42 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]”␤»
23:42 brokenchicken m: say “\c[crying catface]”
23:42 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 #perl6
23:45 AlexDaniel m: say “\c[Libya]” # dammit, I was hoping for a green circle
23:45 camelia rakudo-moar 2140c9: OUTPUT«🇱🇾␤»
23:46 samcv lol
23:48 samcv i installed another font antd since there's no colors, things are even harder to tell what they are then before :P
23:55 BenGoldberg m: '🍏'.uninames.say
23:55 camelia rakudo-moar 2140c9: OUTPUT«(GREEN APPLE)␤»
23:56 BenGoldberg u: m:i/green/
23:56 unicodable6 BenGoldberg, U+006D LATIN SMALL LETTER M [Ll] (m)
23:56 unicodable6 BenGoldberg, U+003A COLON [Po] (:)
23:56 unicodable6 BenGoldberg, https://gist.github.com/1ee579c4552ed36f027abd05f1cf6c02
23:56 AlexDaniel just u: green
23:56 BenGoldberg u: green
23:56 unicodable6 BenGoldberg, U+1F005 MAHJONG TILE GREEN DRAGON [So] (🀅)
23:56 unicodable6 BenGoldberg, U+1F332 EVERGREEN TREE [So] (🌲)
23:56 unicodable6 BenGoldberg, https://gist.github.com/b2d24cbda61f4db8fcb979caf1ee698c
23:56 brokenchicken even mahjong tiles are in it?
23:57 brokenchicken Didn't even know people knew of that game heh.
23:57 * 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
23:57 unicodable6 AlexDaniel, U+22AA TRIPLE VERTICAL BAR RIGHT TURNSTILE [Sm] (⊪)
23:57 unicodable6 AlexDaniel, U+22AB DOUBLE VERTICAL BAR DOUBLE RIGHT TURNSTILE [Sm] (⊫)
23:57 unicodable6 AlexDaniel, https://gist.github.com/7e2e0a7adb63962ae4b2f2a831171ae5
23:58 AlexDaniel pfft. Domino tiles vertical *and* horizontal
23:58 brokenchicken .oO( would be nice to know the total chars in the gist... )
23:58 AlexDaniel brokenchicken: https://github.com/perl6/whateverable/issues/88
23:58 BenGoldberg . o O (⏺0)
23:59 brokenchicken AlexDaniel: "testneeded"? So it's done already or what's happening?
23:59 AlexDaniel brokenchicken: don't look at that label yet
23:59 AlexDaniel if it's open then it's not done

| Channels | #perl6 index | Today | | Search | Google Search | Plain-Text | summary

Perl 6 | Reference Documentation | Rakudo